在Mac Mavericks上用Homebrew安装Armadillo

时间:2014-05-07 20:29:20

标签: c++ macos installation homebrew armadillo

我已经安装了带有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

可能是什么问题?

2 个答案:

答案 0 :(得分:2)

您忘记将-larmadillo添加到编译命令中。这应该有效:

g++-4.7 -I/usr/local/include file1.cpp -O2 -larmadillo -llapack -lblas

请注意,这已在Armadillo附带的README.txt文件中进行了解释。

大多数开源软件都附带自述文件或其他文档,在使用该软件之前阅读文档通常是一个好主意。

答案 1 :(得分:1)

可以使用-L

包含库
g++ -I/usr/local/include -L/usr/local/lib file1.cpp -O2 -llapack -lblas -larmadillo