错误:尝试安装Armadillo时使用-fpic重新编译

时间:2017-03-18 05:28:53

标签: makefile installation cmake ubuntu-14.04 armadillo

我试图在我的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

我该如何纠正这个?

1 个答案:

答案 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赢了为你工作。