gpt4 book ai didi

c - GNU GSL BLAS 库, undefined symbol

转载 作者:行者123 更新时间:2023-11-30 17:34:19 28 4
gpt4 key购买 nike

有没有人可以给我简单介绍一下如何安装 GSL 库,以便它可以在 Mac(Mavericks、10.9)上与 XCode(5.1)一起使用?我不断收到此错误:

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 中的“build设置”并添加“/Library/gsl-1.16”到库和 header 搜索路径

2) 创建从 ...usr/include 路径(...是 XCode 正在使用的 SDK (MacOSX 10.9) 位置)到库路径的符号链接(symbolic link)。

3)将“-lgsl”添加到我的项目方案的“启动时传递的参数”部分

4)将“-Wall -I/Library/include”添加到我的项目方案的“启动时传递的参数”部分

没有任何效果。 Xcode 报告它可以找到 header ,但无法引用与 header 文件关联的方法。真的很有趣。我不知道,我已经做了我能想到的一切并谷歌了。

最佳答案

从您的描述中很难确定您是否正确设置了build设置。我使用 macports 安装了 GSL,但不确定如果直接从源代码安装会是什么样子。但我相信你需要弄清楚make install在哪里安装 GSL 库和 header ,因为通常它们安装到不同的路径中,这不是您运行 make install 的路径.

因为通常make install将安装 header 到 /usr/local/include和图书馆 /usr/local/lib ,我猜你可能设置了错误的库路径。假设您发现您的 GSL 库位于 /usr/local/lib (通常他们应该这样做),您只需要做两件事之一(而不是两者):

  1. 将库搜索路径更改为 /usr/local/lib 。 (和 /usr/local/include 的标题搜索路径如您所做的那样)
  2. 将编译器参数更改为 -Wall -I/usr/local/include -L/usr/local/lib 。 (最后两个参数以大写 i 和大写 L 开头)。

以下是我使用 macports 安装 GSL 并在 Xcode 中设置它以运行矩阵加法的过程:

  1. 如果您还没有安装 macports,请安装它。引用https://www.macports.org/install.php .
  2. 在终端中,输入 sudo port install gsl并喝几杯咖啡。
  3. 默认情况下,macports 将库安装到 /opt/local/lib和标题 /opt/local/include 。因此,在 Xcode 中创建 C++ 项目后,转到build设置,添加以下三个设置:
    • 库搜索路径:/opt/local/lib
    • 标题搜索路径:/opt/local/include
    • 其他链接器标志:-lgsl (根据您想要执行的操作,您可能还需要添加 -lgsl -lgslcblas 和其他标志。)
  4. 现已启动并运行。包括<gsl/gsl_matrix.h>gsl_matrix即可使用。

关于c - GNU GSL BLAS 库, undefined symbol ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412941/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com