OC与C++混编工程配置

新公司做室内地图引擎,类似于百度地图的这种,底层是C++ openGLES写的一套接口,在这个基础上需要进行OC的封装,在这里写一些过程中需要注意的点;

先说几个工程配置的问题:

-ObjC的使用,在TARGETS-build settings-Linking- Other Linker flags中添加的该参数,该参数的使用一般是针对OC catagray的,百度的解释是:”这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来。这样编译之后的app会变大(因为加载了其他的objc代码进来)。但是如果静态库中有类和category的话只有加入这个flag才行“,目前暂时不知道该标识是否会影响C++混编;

关于Library路径搜索的一点问题:

我们在进行三方库引用时候经常会发生链接错误的问题,工程跑一大堆的红色错误,大多数情况是因为系统引用不到所需要的文件导致的。一种可能性是工程中的引用文件已失效,虽然代码仍旧在文件夹中,但是没有与xcode工程挂勾,解决办法是删除工程中的目录,Add Files to ""导入真实存在的文件,这种情况一般解决起来比较容易;如果还引用不到,可以到TARGETS-Build Phases-Compile Sources下查看,把没有添加到的添加进去;

另外一种是Library,也就是我们常用的静态库链接错误,一般是工程找不到三方资源的查找目录,如果你想查看你现在的引用查找目录,TARGETS-bulid settings-Search path下Library Search Path就能看得到,这时你会发现这里有两个Debug和release。

这里将要添加的路径是你的静态库的搜索目录,把目录路径添加到里面就可以了; 不过有一点,我们在工程调拭的时候一般会用到真机和模拟器两种情况,打过包的同学知道这两种包的名字是一模一样的,而且把包文件一般会分在两个目录下,

如上图这样子,而我们要添加这样的库时会把两个文件夹放到一个文件下,这样有时会导致编译器查找不到二进制的文件而导致编译错误,所以我们要配置一下Library Search Path;这里要说一下添加的宏命令;

$(PROJECT_DIR)/FMMapKit/3rd/${CONFIGURATION}-${PLATFORM_NAME}

如上所示,${CONFIGURATION}宏表示Debug或者是Release版本的,${PLATFORM_NAME}表示是模拟器还是真机目录,加上中间的那个”-“,我们看一下是不是跟上图中显示的那个目录名字是对应的呢?在这里你可以百度一下http://blog.csdn.net/fengsh998/article/details/8869497,可以查看更多宏替换的资料;

接下来要说一下关于C++相关的配置,这里涉及的应该是与编译器相关的知识,暂时属于盲区,有兴趣的可以买龙书研究一下,这里不多说,直接上图;

还有一项:

哦不对,这里是两项;

估计这里设置的是C++和C的版本,暂时未解;

到此,工程配置先说到这里,改天继续;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值