C++源码Xcode生成静态库

第一步:创建静态库工程

第二步:导入C++源码

第三步:设置Build Settings-Search Paths-Header Search Paths

设置Header Search Paths的作用是让C++代码能识别到工程中的文件路径,如果不设置肯定会报错 XXX can not found,文件找不到。

提示1:include <>与" "要区分好,否则设置了Header Search Paths也引用不到自己的C++头文件

引用系统库 #include <X>

引用自己写的C++源码 #include "X"

$(SRCROOT)代表工程的根目录,如果不设置这一步,代码里如果引用

 提示2:因为我们工程里有很多同名文件,所以我没有以递归的方式设置根目录,而是把几个被引用的子目录单独添加进了Paths中。如果你的源码没有同名文件,只添加一个$(SRCROOT)即可,后面的non-recursive改为recursive,也就是由非递归改成递归,自动把根目录下的所有文件夹都添加进paths中。

第四步:修改C++14不支持的源码

我的C++源码是Linux系统下使用的服务器代码,因此有很多库是Linux的,Xcode上的很多语法特性C++11之后不支持了,点击build或者Analize找到报错,全部改掉。

第五步:确定打包平台

如果是真机需要,需要勾选真机,模拟器则勾选模拟器,这一步很重要

 如果选错了扔到工程里取使用,会出现以下错误

第六步:点击build生成静态库

 

编译报错汇总

报错1:C++11warning: invalid suffix on literal; C++11 requires a space between literal and string macro ...

解决方案: 字符串和字母之间需要一个空格,举个例子,如下图,ETC和前面的双引号需要空格

报错2:'xxx' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. for architecture arm64

结局方案:BuildSettings -> Enable Bitcode,设置为 NO。

猜你喜欢

转载自blog.csdn.net/liuyongjie1992/article/details/131924068