本文记录了在开发 腾讯移动游戏平台SDK(MSDK) ios版Ane扩展 过程中所遇到的问题

文中非常多问题都是基础的问题、对object c和xcode配置了解不深入导致的。(没办法,开发ane的程序猿大部分都是做ActionScript的,一般对c/c++都没有开发经验)

问题一、编译报错:Unexpected ‘@’ in program

代码例如以下:

@try{

}

@catch{

}

原因是高版本号xcode代码放在低版本号xcode下跑,低版本号ios 不支持这样的写法(ios 7.0编译正常),须要改动设置ios Deployment Target属性

假设要支持安装在低版本号的ios上,则不能用这样的写法----待确认??

问题二、c++代码和object-c混合编译,会报错:Cannot use '@try' with Objective-C exceptionsdisabled

解决的方法:改动target -> build settings -> All | Combined -> Apple LLVMCompiler 5.0 - Language - Objective C 中 EnableObjective-C Exceptions 为YES

 

问题三、编译报错 instance method '-AddList:' not found (returntype defaults to 'id')

原因1:没有import .h文件,仅仅通过 @class file 方式引用了文件,解决方法是 把文件import进来

http://blog.csdn.net/liuyuyefz/article/details/8189210

原因2:实例方法和静态方法搞错了

 

问题四、项目移植到还有一个版本号ide后编译报错

Unsupported compiler 'com.apple.compilers.llvmgcc42' selected forarchitecture 'armv7'

Unableto determine concrete GCC compiler for file/Users/flash8/Desktop/app/TencentMSDKAneIOS/TencentMSDKAneIOS/TencentMSDKAneIOS.mof type sourcecode.c.objc.

原因是xcode版本号不同,编译器不一样了,解决方法:

设置 Build Settings-> Build Options -> Compiler for C/C++/Objective-C 选择DefaultComplier (Apple LLVM 5.1)

 

问题五、打包时报错:ld: framework not found AdSupport

原因是platformoptions.xml中未加入�在上加入�AdSupportframework,注意(低于IOS 6.0系统须要在xcode中设置为Optional)

<option>-frameworkAdSupport</option>

 

问题六、打包时报错:-[GDataXMLElement attributeForName]......一大段

原因是platformoptions.xml中未加入�在上加入�libxml2

<option>-lxml2</option>

 

问题七、打包时报错:

Undefined symbols for architecture armv7:  

 "_TencentMSDKAneIOSExtInitializer",referenced from:

     _g_com_adobe_air_fre_fmap in extensionglue.o

     (maybe you meant:_TencentMSDKAneIOSExtInitializer_name)

 "_TencentMSDKAneIOSExtInitializer",referenced from:

     _g_com_adobe_air_fre_fmap in extensionglue.o

     (maybe you meant:_TencentMSDKAneIOSExtFinalizer_name)

 ld:symbol(s) not found for architecture armv7

Compilationfailed while executing : ld64

找了好久,一直怀疑是类库漏了或配置错误,后来发现原因是 c++把函数名翻译了(这个项目包括c++代码)

解决的方法是在头文件里用extern c把那两入口函数包住

#if__cplusplus

extern"C" {

#endif

void *TencentMSDKAneIOSExtInitializer();

void *TencentMSDKAneIOSExtInitializer();

#if__cplusplus

}  // Extern C

#endif

參考链接:http://stackoverflow.com/questions/7376003/linker-error-using-extern-c-in-objective-c-code

问题八、#import<vector> 编译时提示错误“vector.h file not found”

原因是项目中引入了C++ STL里的vector.h文件,编译器的配置不正确,改动例如以下配置就可以:

1. 选择project -> build setting -> apple LLVM compiler 3.0 – language配置项,

2. 将Compile Sources As设置项改动为Objective-C++。

【原文链接:http://blog.csdn.net/linguifa/article/details/25741807/ 
转载请注明出处】

开发腾讯移动游戏平台SDK ios版Ane扩展 总结的更多相关文章

  1. 开发腾讯移动游戏平台SDK Android版Ane扩展 总结

    本文记录了在开发 腾讯移动游戏平台SDK(MSDK) Android版Ane扩展 过程中所遇到的问题和相关解决方式 问题一:编译报错:Unable to resolve target 'android ...

  2. 开发QQ互联ios版Ane扩张 辛酸史

    来源:http://www.myexception.cn/operating-system/1451490.html 开发QQ互联ios版Ane扩展 辛酸史 开发QQ互联ios版Ane扩展辛酸史: 1 ...

  3. 腾讯微信被怼,iOS版微信不能打赏了

    2017年4月19日,估计很多有着大量粉丝的微信自媒体作者会感到很不爽,因为他们的苹果粉丝再也无法很爽快地.肆意.任性地打赏他们了,按目前iphone手机的占有率,估计打赏率会掉一半以上. 据微信派微 ...

  4. Kubernetes - 腾讯蓝鲸配置平台(CMDB)开源版部署

    蓝鲸CMDB 蓝鲸配置平台(蓝鲸CMDB)是一个基于运维场景设计的企业配置管理服务.主要功能: 1. 拓扑化的主机管理:主机基础属性.主机快照数据.主机归属关系管理 2. 组织架构管理:可扩展的基于业 ...

  5. 转:探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

    前言 相信这样一个问题,大家都不会陌生, “有什么的方法可以使Android的程序APK不用安装,而能够直接启动”. 发现最后的结局都是不能实现这个美好的愿望,而腾讯Android手机游戏平台却又能实 ...

  6. 探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法

    前言相信这样一个问题,大家都不会陌生,“有什么的方法可以使Android的程序APK不用安装,而能够直接启动”.发现最后的结局都是不能实现这个美好的愿望,而腾讯Android手机游戏平台却又能实现这个 ...

  7. 视频直播SDK-ios版

    IOS视频直播接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,6 ...

  8. Ubuntu 18.04下安装Steam顶级在线游戏平台

    Ubuntu 18.04下安装Steam顶级在线游戏平台 原创: 聆听世界的鱼 Linux公社 今天 Steam是由Valve公司开发的顶级在线游戏平台,是目前全球最大的综合性数字发行平台之一.它让你 ...

  9. ios版弹珠游戏源码

    这个是我们比较喜欢玩的一直小游戏的,ios版弹珠游戏源码,该游戏源码来着IOS教程网其他网友提供上传的,大家可以了解一下吧. nore_js_op>     <ignore_js_op&g ...

随机推荐

  1. bzoj1937

    这道题没弄明白 初始模型很好想,是用到了最小生成树的性质 加入非树边后树上形成的环,非树边一定大于等于任意树边 然后考虑树边一定是缩小,非树边一定是增大 有di+wi>=dj-wj wi+wj& ...

  2. SHOI2008小约翰的游戏John

    1022: [SHOI2008]小约翰的游戏John Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 1139  Solved: 701[Submit][ ...

  3. ASP.NET Cache

    ASP.NET为了方便我们访问Cache,在HttpRuntime类中加了一个静态属性Cache,这样,我们就可以在任意地方使用Cache的功能. 而且,ASP.NET还给它增加了二个“快捷方式”:P ...

  4. urllib

    urllib Python 标准库 urllib2 的使用细节 python 2.x 3.x from urllib import request with request.urlopen('http ...

  5. 几种通讯协议的比较RMI > Httpinvoker >= Hessian >> Burlap >> web service

    一.综述本文比较了RMI,Hessian,Burlap,Httpinvoker,web service等5种通讯协议的在不同的数据结构和不同数据量时的传输性能.RMI是java语言本身提供的远程通讯协 ...

  6. NopCommerce架构分析之三---数据库初试化及数据操作

    系统启动时执行任务:IStartupTask,启动时执行的任务主要是数据库的初始化和加载. IStartupTask调用IEfDataProvider进行数据库的初始化. IEfDataProvide ...

  7. C#第三方控件的使用

    一.DEVEXPRESS的使用 官网:https://www.devexpress.com/ 入门教程:http://wenku.baidu.com/link?url=2sXEEby1ffx9JTWG ...

  8. Javascript 知识点简介

    如何在HTML中引入JS? 所有重定向的HTML标签内都可以嵌入javascript代码. 浮点数不要用 == 来进行判断 var num=0;    for(var i=0;i<10;i++) ...

  9. 枚举类型的单例模式(java)

    Inspired by Effective Java. Singleton模式是在编程实践中应用最广泛的几种设计模式之一.以前知道的,实现单例的方法有两种(下面的A.B).刚刚在读<Effect ...

  10. 《转》GDB中应该知道的几个调试方法

    原文:http://coolshell.cn/articles/3643.html 七.八年前写过一篇<用GDB调试程序>,于是,从那以后,很多朋友在MSN上以及给我发邮件询问我关于GDB ...