我有一个共享库项目,它只有在我将 -fPIC 添加到编译器命令时才会构建(这解决了问题)。
当我尝试在这个项目中使用静态库时,我遇到了类似的问题,但在这种情况下我无法使用 -fPIC 修复:
libtest.a(exception.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
请问我能得到一些关于如何成功链接的帮助吗?我也尝试将 -fPIC 添加到链接器选项,但我得到了同样的错误。
我在 Linux 上使用 GCC 编译器。
最佳答案
从问题看来,您正在更新链接时间以添加 -fPIC
,但您需要使用 -fPIC
重新编译 libtest.a
> 这样在 exception.o
中创建的重定位和库中的其他对象是 PIC 兼容的。
关于c++ - 如何在 Eclipse CDT 的共享库项目中使用静态库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33626893/