是否有任何方法可以找出使用 -fPIC 标志编译的静态库

Ric*_*Shi 5 c++ static-libraries fpic

我手头有一堆静态库,它们都有两个版本——32 位和 64 位。当我使用这些静态库编译成共享库时,发生了奇怪的事情: 1. 我使用 64 位静态库编译了 64 位共享库,一切正常;2.我用32bit静态库编译了一个32bit共享库,ld告诉我[text section is not shareable]。

所以,我猜 32 位静态库不使用 -fPIC 标志,但我的同事告诉我他添加了标志。但我仍然怀疑,所以有没有办法找出静态库是否添加了 -fPIC 标志。PS:我知道使用 readelf 或 objdump 可能会得到一些线索,但是有更好的方法吗?

neo*_*los -1

我相信,如果你使用的是linux,你可以查看输出file

file myLib.so
file myLib.a
Run Code Online (Sandbox Code Playgroud)

输出应该告诉您该库是否是使用 -fPIC 编译的