无法在libpca中编译示例代码

我正在尝试安装libpca软件包。我已经设置了犰狳。


libpca软件包已解压缩到/my/dir/。然后将CPLUS_INCLUDE_PATH和其他变量设置到Armadillo的安装位置。(export CPLUS_INCLUDE_PATH=/my/dir/arma_install/include/:$CPLUS_INCLUDE_PATH)


我运行以下命令来安装libpca:


/my/dir/libpca-1.3.3$  ./configure --prefix=/my/dir/libpca-1.3.3

/my/dir/libpca-1.3.3$  make

有警告但没有错误。和命令:


/my/dir/libpca-1.3.3$  make install prefix=/my/dir/libpca-1.3.3

看起来不错,没有错误报告。


然后,我尝试在中编译并运行示例文件/my/dir/libpca-1.3.3/examples/simple/pca_example.cpp。在dir中examples,我运行


/my/dir/libpca-1.3.3/examples$  make

它返回


make [1]:“全部”不做任何事情


make [1]:“上午”一无所获


并且没有创建新文件。然后我进入examples/simple并运行


/my/dir/libpca-1.3.3/examples/simple$  make

它返回:


make:“全部”无所事事


并且没有创建新文件。然后我跑


/my/dir/libpca-1.3.3/examples/simple$  make check

它返回以下错误:


变量wrapper_dsyev_,wrapper_dgemv_,wrapper_dgemm_等。在上述的错误,存在以下的二进制文件:


/my/dir/arma_install/lib64/libarmadillo.so.8.500.0

/my/dir/arma_downloaded/CMakeFiles/armadillo.dir/src/wrapper.cpp.o

/my/dir/arma_downloaded/CMakeFiles/CMakeRelink.dir/libarmadillo.so.8.500.0

将export它们放入后LD_LIBRARY_PATH,仍然会返回相同的错误。


我认为include路径和环境变量应该有问题。我该如何解决?


此外,如果需要在中编写代码/my/dir/working_dir/,该如何设置路径?


心有法竹
浏览 262回答 1
1回答

撒科打诨

您需要告诉链接程序您犰狳库的位置。您可以通过两种方式实现此目的:通过环境变量: export LIBRARY_PATH=/arma/lib:$LIBRARY_PATH传递armadillo include和库路径以直接配置: ./configure --with-armadillo-incdir=/arma/include --with-armadillo-libdir=/arma/lib我建议您使用选项2,因为它会阻止设置额外的环境变量,这可能会污染您的环境。请注意,它--prefix表示将libpca安装到的目录。这应该与源目录不同!配置之后,你可以运行make,make check以及make install。为了make check成功,Linux库加载器需要知道armadillo共享库的位置。因此,一种选择是像这样运行:LD_LIBRARY_PATH=/arma/lib make check总结一下您需要运行的命令:./configure --prefix=/libpca/install --with-armadillo-incdir=/arma/include --with-armadillo-libdir=/arma/libmakeLD_LIBRARY_PATH=/arma/lib make checkmake install显然,您需要根据情况调整路径。注意:在某些平台上,您需要显式链接lapack和blas。因此,如果遇到其他链接器错误,请尝试按以下方式进行配置: LIBS='-llapack -lblas' ./configure --prefix=/libpca/install --with-armadillo-incdir=/arma/include --with-armadillo-libdir=/arma/lib
打开App,查看更多内容
随时随地看视频慕课网APP