c++ - 如何在 Eclipse CDT 的共享库项目中使用静态库

标签 c++ linux eclipse gcc

我有一个共享库项目,它只有在我将 -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/

相关文章:

c++ - null shared_ptr 可以访问成员函数

c++ - BOOST单元测试堆栈溢出

c++ - Address-of(&) 运算符传递的无效指针

c++ - (char*)&obj 替代品

c++ - 共享库和 libpthread.so 的 g++ 问题

c - 如何将测试用例添加到 ltp

linux - 在 Windows 上运行为 Linux 构建的 Qt 应用程序

eclipse - 找不到所需的插件 'org.eclipse.pde.junit.runtime'

php - XAMPP、Eclipse、PHP、MySQL : Fatal error: Call to a member function fetch_array() on null

EclipseFP 不工作