c++ - 有什么方法可以找出静态库是用 -fPIcflags编译的

标签 c++ static-libraries fpic

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

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

最佳答案

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

的输出
file myLib.so
file myLib.a

如果库是用 -fPIC 编译的,输出应该会告诉你

关于c++ - 有什么方法可以找出静态库是用 -fPIcflags编译的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32560968/

相关文章:

c - 为什么我不能用 -fPIE 编译但可以用 -fPIC 编译?

c++ - 用于高级综合的任意精度浮点库

c++ - 如何包装作为成员函数的 DLL 函数?

c++ - 要自定义消息框,我应该挂接消息框还是使用 CreateWindowEx 来创建一个模仿?

visual-studio - 为什么 C++ 静态库项目没有链接器设置?

c - 如何使用 Code::Blocks IDE 构建 .lib 文件

c - 全局变量、共享库和 -fPIC 效果

c++ - 带有 cpp 的 ndk 中的标准 - vector 问题

iphone - iPhone 设备 3.0 静态库中的类别

c++ - 除了共享库之外,g++ -fPIC 是否也适用于可执行文件?