首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Mac Mavericks上安装带有Homebrew的Armadillo

在Mac Mavericks上安装带有Homebrew的Armadillo
EN

Stack Overflow用户
提问于 2014-05-08 04:29:20
回答 2查看 3.7K关注 0票数 3

我已经用Homebrew安装了Armadillo

代码语言:javascript
复制
brew install homebrew/science/armadillo

我曾尝试用以下命令编译一些代码

代码语言:javascript
复制
g++-4.7 -I/usr/local/include file1.cpp -O2 -llapack -lblas

但我得到的只是

代码语言:javascript
复制
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

同样的道理

代码语言:javascript
复制
g++-4.7 -I/usr/local/include file1.cpp -O2 -framework accelerate

还包括-larmadillo

代码语言:javascript
复制
g++-4.7 -I/usr/local/include file1.cpp -O2 -larmadillo -llapack -lblas

它返回

代码语言:javascript
复制
library not found for -larmadillo

和在

代码语言:javascript
复制
/usr/local/Cellar/armadillo/4.100.2/lib/

我发现像libarmadillo.4.10.2.dylib这样的库,但它们不能包含在-I

可能的问题是什么?

EN

回答 2

Stack Overflow用户

发布于 2014-05-08 09:00:28

您忘记了将-larmadillo添加到编译命令中。这应该是可行的:

代码语言:javascript
复制
g++-4.7 -I/usr/local/include file1.cpp -O2 -larmadillo -llapack -lblas

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

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

票数 2
EN

Stack Overflow用户

发布于 2014-05-08 16:00:46

可以使用-L包含库

代码语言:javascript
复制
g++ -I/usr/local/include -L/usr/local/lib file1.cpp -O2 -llapack -lblas -larmadillo
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23527751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档