在 Mac Mavericks 上使用 Homebrew 安装犰狳

Posted

技术标签:

【中文标题】在 Mac Mavericks 上使用 Homebrew 安装犰狳【英文标题】:Installing Armadillo with Homebrew on Mac Mavericks 【发布时间】:2014-05-07 20:29:19 【问题描述】:

我已经用 Homebrew 安装了犰狳

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

可能是什么问题?

【问题讨论】:

【参考方案1】:

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

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

请注意,这一切都在犰狳附带的README.txt 文件中进行了解释。

大多数开源软件都附带 README 文件或其他文档,通常最好在使用软件之前阅读文档。

【讨论】:

【参考方案2】:

可以使用-L 包含库

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

【讨论】:

以上是关于在 Mac Mavericks 上使用 Homebrew 安装犰狳的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac Mavericks 上使用 Homebrew 安装犰狳

无法使用 Mavericks 在我的 Mac 上安装 PG gem

使用 PhoneGap/Cordova 为 Android 构建时,在 Mac OS X 10.9 Mavericks 上执行命令“ant”时出错

无法在 Mac Mavericks 上安装 python mysql 库

使用 SQLite 数据库的 Mac 应用程序在 10.9 Mavericks 中创建了三个数据库

在 OS X 10.9 (Mavericks) 上安装 Java