5

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

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

4

1 回答 1

0

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

file myLib.so
file myLib.a

如果库是使用 -fPIC 编译的,输出应该会通知您

于 2015-09-14T13:01:00.147 回答