ld:找不到-lgsl的库

Nov*_*e C 13 macos path gsl

我在OSX工作,我正在尝试运行一个make文件,当我尝试时,我得到以下内容:

ld: library not found for -lgsl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [harm] Error 1
Run Code Online (Sandbox Code Playgroud)

之前我发现我需要获取gsl库并使用mac端口并输入:

sudo port install gsl
Run Code Online (Sandbox Code Playgroud)

进入我的命令行窗口,似乎没有问题.丢失的lgsl配置不正确还是没有配备gsl?我试过谷歌搜索lgsl但没有得到太多.我只是在编程几天,我不知道我是否应该设置路径,甚至真的如何做到这一点.

感谢您提供的任何帮助.

Man*_*ani 18

我只想说我在OSX上遇到了确切的问题.我没有设置环境变量,而是使用了一个额外的编译器标志-L/opt/local/lib,然后让人们使用它-lgsl.我参考了这个答案.


Che*_*dor 9

我遇到了同样的问题,这是我如何解决它:

export LIBRARY_PATH=/usr/local/Cellar/gsl/1.16/lib/
Run Code Online (Sandbox Code Playgroud)

我之前使用过以下命令安装了gsl:

brew install gsl
Run Code Online (Sandbox Code Playgroud)

  • 在Mac上的LIBRARY_PATH和LD_LIBRARY_PATH有什么区别?什么时候使用它们? (3认同)
  • @WestCoastProjects `LD_LIBRARY_PATH` 用于动态链接,而 `LIBRARY_PATH` 用于静态链接。您的“LD_LIBRARY_PATH”将包含“*.dylib”文件(动态链接库),“LIBRARY_PATH”将包含“*.a”文件(静态库)。通常(但并非总是)dylib 和静态库的存储路径是相同的。 (2认同)

Adi*_*ath 5

您需要将macports安装gsl库的路径添加到LD_LIBRARY_PATH环境变量中(或者很可能添加到构建脚本环境中)。我相信macports将东西存储在/ opt / local / lib中

  • 次要更新:我不知道LD_LIBRARY_PATH到底是什么,但是我更正了LIBRARY_PATH到/ opt / local / lib的路径,并使运行顺利。 (2认同)