编译链接常用选项总结

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选项。

未经声明,禁止转载,喜欢的给个赞吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容