我已经用Homebrew安装了Armadillo
brew install homebrew/science/armadillo我曾尝试用以下命令编译一些代码
g++-4.7 -I/usr/local/include file1.cpp -O2 -llapack -lblas但我得到的只是
Undefined symbols for architecture x86_64: "_wrapper_ddot_", referenced from:
void arma::syrk<false, false, false>::apply_blas_type<double, arma::Mat<double> >(arma::Mat<double>&, arma::Mat<double> const&, double, double) in ccYKNLEL.o "_wrapper_dgemm_", referenced from:
_main in ccYKNLEL.o "_wrapper_dgemv_", referenced from:
_main in ccYKNLEL.o "_wrapper_dsyrk_", referenced from:
void arma::syrk<false, false, false>::apply_blas_type<double, arma::Mat<double> >(arma::Mat<double>&, arma::Mat<double> const&, double, double) in ccYKNLEL.o ld: symbol(s) not found for architecture
x86_64 collect2: error: ld returned 1 exit status同样的道理
g++-4.7 -I/usr/local/include file1.cpp -O2 -framework accelerate还包括-larmadillo
g++-4.7 -I/usr/local/include file1.cpp -O2 -larmadillo -llapack -lblas它返回
library not found for -larmadillo和在
/usr/local/Cellar/armadillo/4.100.2/lib/我发现像libarmadillo.4.10.2.dylib这样的库,但它们不能包含在-I中
可能的问题是什么?
发布于 2014-05-08 09:00:28
您忘记了将-larmadillo添加到编译命令中。这应该是可行的:
g++-4.7 -I/usr/local/include file1.cpp -O2 -larmadillo -llapack -lblas注意,这一切都在Armadillo附带的README.txt文件中进行了解释。
大多数开放源码软件都附带自述文件或其他文档,通常在使用该软件之前阅读文档是一个好主意。
发布于 2014-05-08 16:00:46
可以使用-L包含库
g++ -I/usr/local/include -L/usr/local/lib file1.cpp -O2 -llapack -lblas -larmadillohttps://stackoverflow.com/questions/23527751
复制相似问题