我正在尝试在Ubuntu 12.04 LTS上从源代码构建可深度为1.6.7的图像程序。我按照说明here。有大约85%的错误,我不知道如何解释:
Linking C shared module libgrain.so
/usr/bin/ld: CMakeFiles/grain.dir/introspection_grain.c.o: relocation R_X86_64_32S against `.rodata' can not be used when making a shared object; recompile with -fPIC
CMakeFiles/grain.dir/introspection_grain.c.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [src/iop/libgrain.so] Error 1
make[1]: *** [src/iop/CMakeFiles/grain.dir/all] Error 2
我不知道在哪里传递-fPIC
。我还读到--enable-shared
应该传递给./configure
,但在这种情况下没有./configure
文件,我不知道这里的可比步骤是什么。任何帮助理解和解决此错误都将不胜感激!
答案 0 :(得分:1)
我想出来了,这非常简单。我没有使用我链接到的黑暗网站上建议的cmake调用,而是使用ccmake来配置和生成。它会自动填入C标志-fPIC
所需的位置。然后它完美地建造。