我试图在我的Ubuntu 14.04中安装Armadillo
我在Armadillo文件所在的文件夹中的终端中运行cmake .
命令,然后运行make
命令。我收到以下错误。
/usr/bin/ld: /usr/local/lib/libsuperlu.a(util.c.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object;
recompile with -fPIC
/usr/local/lib/libsuperlu.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [libarmadillo.so.7.800.1] Error 1
make[1]: *** [CMakeFiles/armadillo.dir/all] Error 2
make: *** [all] Error 2
我该如何纠正这个?
答案 0 :(得分:3)
您系统上<div id="object"></div>
<button id="button">Resize bottom-right corner</button>
的库很可能不是使用/usr/local/lib/libsuperlu.a
构建的,并且您可能正在尝试构建使用-fPIC
代码的共享库。如果这是您的情况,那么编译器会告诉您libsuperlu.a
中的代码不可重定位,但您的共享库需要它。您需要构建自己的libsuperlu.a
并确保其所有目标文件都使用libsuperlu.a
标记进行编译,因为您-fPIC
中当前安装的libsuperlu.a
赢了为你工作。