我已经下载了最新的Armadillo软件包(3.920),我正在我的机器上尝试使用它(Ubuntu12.04)。我正在遵循安装readme.txt文件中提到的步骤(cmak.make,sudo )。我的系统有问题。当我尝试使用: g++ example1.cpp -O2 -larmadillo运行示例目录中提供的示例时,会得到错误: /usr/lib/liblapack.so.3gf:ATL_zptgemm' /usr/lib/liblapack.so.3gf: undefined reference to、ATL_scopy‘的未定义引用等。
如果我尝试使用g++ example1.cpp -O2 -llpack -lblas -lgfortran运行这个示例,就会得到错误: /tmp/ccOsKhfg.o:在函数double arma::blas::dot<double>(unsigned int, double const*, double const*)': example1.cpp:(.text._ZN4arma4blas3dotIdEET_jPKS2_S4_[double arma::blas::dot<double>(unsigned int, double const*, double const*)]+0x36): undefined reference towrapper_ddot_‘/tmp/ccOsKhfg.o:在函数void arma::blas::gemv<double>(char const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)': example1.cpp:(.text._ZN4arma4blas4gemvIdEEvPKcPKiS5_PKT_S8_S5_S8_S5_S8_PS6_S5_[void arma::blas::gemv<double>(char const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)]+0x53): undefined reference towrapper_dgemv_’/tmp/ccOsKhfg.o:在函数void arma::blas::gemm<double>(char const*, char const*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)': example1.cpp:(.text._ZN4arma4blas4gemmIdEEvPKcS3_PKiS5_S5_PKT_S8_S5_S8_S5_S8_PS6_S5_[void arma::blas::gemm<double>(char const*, char const*, int const*, int const*, int const*, double const*, double const*, int const*, double const*, int const*, double const*, double*, int const*)]+0x61): undefined reference towrapper_dgemm_‘中
请注意,如果我在config.hpp中注释'#define _USE_ lapack‘、'#define _USE_BLAS’行,我可以运行示例1,但不能运行示例2,因为它需要翻版。
你能指导我解决这个问题吗?谢谢。萨里尔
发布于 2017-02-06 18:52:14
看到你的问题,我认为你应该输入-llapack而不是-llpack。
如果没有-lgfortan,它也可以工作,所以也可以尝试一下。
g++ main.cpp -o main -o1 -larmadillo -llapack -lblas
https://stackoverflow.com/questions/20604246
复制相似问题