我有一个共享库项目,只有在我将-fPIC添加到Compiler命令时才会构建(这解决了问题)。
当我尝试在这个项目中使用静态库时,我遇到了类似的问题,但在这种情况下,我无法修复-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编译器。
答案 0 :(得分:1)
从问题中看,您正在更新添加-fPIC
的链接时间,但您需要使用libtest.a
重新编译-fPIC
,以便在exception.o
和$colors: red, orange, yellow, green, green, yellow, orange, red;
@for $i from 1 through length($colors) {
li:nth-child(#{length($colors)}n+#{$i}) {
background: lighten(nth($colors, $i), 20%);
}
}
中创建重定位库中的其他对象是PIC兼容的。