有没有人可以简单地告诉我如何安装GSL库,以便它可以在Mac上使用XCode(5.1)(Mavericks,10.9)?我一直收到这个错误:
Undefined symbols for architecture x86_64:
"_gsl_matrix_add", referenced from:
_myProject in main.o
我最初在/Library/gsl-1.16中安装了GSL 1.16 我完成了整个./configure,make和make install
我试图修复的事情:
1)进入"构建设置"在XCode中添加" /Library/gsl-1.16" 到库和标题搜索路径
2)从... usr / include路径(...是XCode正在使用的SDK(MacOSX 10.9)位置)创建符号链接到库路径。
3)添加" -lgsl"参加#34;在发布会上传递的论点"我项目计划的一部分
4)添加" -Wall -I / Library / include"参加#34;在发布会上传递的论点"我项目计划的一部分
没有任何效果。 Xcode报告它可以找到标题,但它不能引用与标题文件相关的方法。真的很有趣。我不知道,我已经完成了我能想到的一切和谷歌。
答案 0 :(得分:0)
根据您的描述,很难确定您是否正确设置了构建设置。我使用macports安装了GSL,并且不确定如果直接从源代码安装它会是什么样子。但我相信您需要确定make install
安装GSL库和标头的位置,因为它们通常安装在不同的路径中,而不是您运行的路径make install
。
由于make install
通常会将标头安装到/usr/local/include
,将库安装到/usr/local/lib
,我想您可能会设置错误的库路径。假设你发现你的GSL库在/usr/local/lib
(通常他们应该),你只需要做两件事之一(而不是两者):
/usr/local/lib
。 (和/usr/local/include
的标题搜索路径一样)-Wall -I/usr/local/include -L/usr/local/lib
。 (最后两个参数以大写i和大写L开头。)以下是我如何使用macport安装GSL并在Xcode中设置它来运行矩阵的过程:
sudo port install gsl
,然后喝几杯咖啡。/opt/local/lib
,将标头安装到/opt/local/include
。因此,在Xcode中创建C ++项目后,转到构建设置,添加以下三个设置:
/opt/local/lib
/opt/local/include
-lgsl
(取决于您要执行的操作,您可能还需要添加-lgsl -lgslcblas
和其他标记。)<gsl/gsl_matrix.h>
和gsl_matrix
已准备就绪。