一点学习笔记:
- 用xcode创建一个静态的,产物只有.a和*.h
- 用xcode创建一个动态库,产物有xxxx.framework,而且里面有头文件和module目录;
为什么我的工程的产物是*.framework,却没有module目录? 因为MyModuleFra.h没有在buildSetting设置成:public
设置成public后,产物既有了Headers目录,也有了Modules目录。。。
至于说module还有什么影响,原理,暂时还不知道。
前面在头文件属性设置成public前,还需要buildSetting有如下配置:
- Define module = YES
- Product Module Name=MyModuleFra
- Map file和Private Map 可以不用设置
延伸阅读: - 有些clang的编译选项:-emit-module、-emit-objc-header、-emit-objc-header-path - module文件本身也有语法: framework module XXXX: 定义framework 语义的模块 umbrella header "XXXX.h" 说明把 XXXX.h 文件作为模块的 unbrella header,即所有公共头文件的一个集合,方便使用者导入。 export * 将所有子模块中的符号进行重导出到主模块中 module * { export * } 定义子模块,这里为 * 则是为 umbrella header 中的每个头文件都创建一个子模块。