目前,我正在尝试安装毫升包到Ubuntu 12.04。当我执行时make install
,出现以下错误。
[ 0%] Built target mlpack_headers
Linking CXX shared library ../../lib/libmlpack.so
/usr/bin/ld: /usr/local/lib/libboost_program_options.a(cmdline.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libboost_program_options.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [lib/libmlpack.so.1.0] Error 1
make[1]: *** [src/mlpack/CMakeFiles/mlpack.dir/all] Error 2
make: *** [all] Error 2
我该如何修复此错误并成功安装 mlpack?
答案1
我也遇到了同样的问题。我使用以下方法重新安装了所有依赖项
sudo apt-get install libboost-math-dev libboost-program-options-dev libboost-random-dev
libboost-test-dev libxml2-dev liblapack-dev libblas-dev libarmadillo-dev
在 mlpack 文件夹中:执行以下命令
mkdir build
cd build
cmake ../
makes
sudo make install
之后运行可执行文件,使用以下命令设置路径关联..... 对我有用。
答案2
使用 -fPIC 重新编译你的 boost 例如 ./bjamcxxflags=-fPIC--不带python --不带graph_parallel --不带graph --不带wave 安装