1. -fvisibility
用于指定符号可见性。
- 由-fvisibility参数指定的常用值有:default/hidden
- 使用__attribute ((visibility))设置符号可见
通常情况下,推荐使用设置全局的-fvisibility=hidden编译参数来隐藏所有的符号,只在需要导出的函数定义处,使用attribute((visibility("default")))设置为导出。
2. -Wl,-Bsymbolic
编译器传递给链接器的一个参数,用于在链接过程中将符号只链接到本库中的符号,而不是绑定到默认的全局符号表中第一个匹配的符号。
3. -Wl,--whole-archive
用来指定链接器(ld)在链接时强制将一个库文件(.a文件)中的所有目标文件(o文件)都包含进去。
4. -fPIC
使用-fPIC选项在编译阶段编译的.o文件会生成位置无关的代码,通常用于编译动态库。如果你的静态库可能会被动态库使用,那么静态库编译的时候就也需要-fPIC选项。
未经声明,禁止转载,喜欢的给个赞吧!