我可以确定哪些编译器/链接器标记用于创建仅二进制共享库的位置?

时间:2010-02-16 21:40:27

标签: gcc g++ shared-libraries

我想知道是否有办法找出哪些g++编译器/链接器标志用于创建仅二进制库。

例如,可能存在第三方共享库(仅存在.h / .so文件)。

所以我认为在编译和链接我自己的应用程序时使用相同的g ++标志是个好主意(即使用仅二进制的第三方库)。

具体来说,我要求编译器标志,如

  • -fno内联
  • -pthreads
  • -mtune =拱
  • -O2

并且还有兴趣使用哪个链接器标志:

  • -fpic或-fPIC
  • -fexceptions
  • -pthreads

等等。

2 个答案:

答案 0 :(得分:1)

没有系统的方法可以做到这一点。您可以查看库是否链接到libpthread,以指示是否使用了-pthreads。对于PIC /非PIC代码,您可能需要尝试this。优化级别,调整等等将更难确定。

答案 1 :(得分:0)

我不相信,因为ELF格式似乎没有该信息的部分。在Linux上,如果你使用'readelf -a'来转储所有信息,那么文件的方式就没有了。