iOS编译问题

2022-02-25  本文已影响0人  __weiliang
1.Use of '@import' when C++ modules are disabled, consider using -fmodule
在Project-buildSettings中找到 Other C++ Flags,然后添加-fcxx-modules 
打开icu分词器  -DSQLITE_ENABLE_ICU
打开fts5   -DSQLITE_ENABLE_FTS5

-DSQLITE_ENABLE_FTS3_PARENTHESIS-DSQLITE_ENABLE_FTS3

-DSQLITE_ENABLE_FTS4_PARENTHESIS-DSQLITE_ENABLE_FTS4

-ObjC:这个flag告诉链接器把库中定义的Objective-C类和Category都加载进来。这样编译之后的app会变大(因为加载了其他的objc代码进来)。但是如果静态库中有类和category的话只有加入这个flag才行。
-all_load:这个flag是专门处理-ObjC的一个bug的。用了-ObjC以后,如果类库中只有category没有类的时候这些category还是加载不进来。变通方法就是加入-all_load或者-force-load。-all_load会强制链接器把目标文件都加载进来,即使没有objc代码。-force_load在xcode3.2后可用。但是-force_load后面必须跟一个只想静态库的路径。

原文

2.合并静态库

原文讲了两种,我选择了最简单的一个。

libtool -static -o libmerge.a libx.a liby.a
3.静态库.a转framework

新建一个文件夹,改名为xxxx.framework,把.a文件放进去,改名为xxx,切记不要有.a扩展名。在文件夹里再建立一个文件夹,改名为Headers,把.h文件都放进去
原文

4.协议中定义了属性
@synthesize propertyName;
上一篇 下一篇

猜你喜欢

热点阅读