3

我正在尝试使用 GSL 进行最小二乘拟合,但我什至无法使示例正常运行。它可以编译,但是在运行程序时会出现错误

dyld: lazy symbol binding failed: Symbol not found: _cblas_dnrm2

Referenced from: /usr/local/lib/libgsl.0.dylib

Expected in: dynamic lookup

我相信我已经将问题缩小到了这一行

gsl_multifit_fdfsolver_set (s, &f, &x.vector);

但我一点也不知道为什么。

我在 OSX 上使用 GSL 1.15 运行它(尽管我最初安装了错误的版本,1.9)。我使用以下命令在终端中编译它:gcc unchanged_example.c -o examplefitter -lgsl -lm

编辑:在这里找到了解决方案。编译时添加' -lgslcblas'整理出来

4

2 回答 2

2

对于遇到此问题的任何人,您需要链接两个库...

gcc -Wall -O3 -g -lgslcblas -lgsl -std=c11 -pedantic-errors
于 2016-04-23T05:13:32.350 回答
1

您需要找到包含它的共享库_cblas_dnrm2并将其链接到您的应用程序中。

于 2011-05-22T13:58:06.843 回答