开发者

Can I determine which compiler/linker flags where used to create a binary-only shared library?

I am wondering if there is a way to find out which g++ compiler/linker flags where used in creating a binary-only library.

For example there might be a 3rd party shared library (only .h/.so files are there).

So I think it would be a good idea to use the same g++ flags when compiling and linking my own application (that is using the binary-only 3rd party library).

Specifically I am asking for compiler flags like

and also it would be of interest which linker flags have been used:

  • -fpic or -fPIC
  • -fexceptions
  • -pthreads

and so on.


There is no systematic way of doing this. You can look if the library is linked to libpthread as an indication of whether -pthreads was used. For PIC/non-PIC code, you may want to try this. Optimization level, tuning and others will be much harder to determine.


I don't believe so as there does not appear to be a section in the ELF format for that information. On Linux, if you use 'readelf -a' to dump all the information, there's nothing about how the file got that way.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜