OSX El Capitan升级后发现“未找到gsl / gsl_rng.h'文件”

时间:2015-11-05 10:33:10

标签: c header-files gsl osx-elcapitan

我刚刚更新到最新的OSX,El Capitan,我在编译C程序时遇到问题。它在操作系统升级之前编译得很好。之后我收到了一条警告信息,我的LaTeX文本编辑器,Latexian:

Latexian message

但是因为我没有在程序中使用预览或编译,并使用“latex file.tex”在终端中编译,所以它工作正常。

现在问题在于我的.c程序,其中包含一个GSL库,这是我的标题:

#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_randist.h>

编译时我得到以下内容:

performance.c:4:10: fatal error: 'gsl/gsl_rng.h' file not found
#include <gsl/gsl_rng.h>
          ^
1 error generated.

我猜测OSX因为这两种情况而发生了一些变化,但后者对我来说是个大问题,因为我正在完成我的论文!希望我的问题很清楚,这是我的第一个问题。

修改

我猜这是问题

El Capitan's System Integrity Protection will shift utilities' functions

3 个答案:

答案 0 :(得分:3)

使用 GCC 进行编译时,您可能必须手动指定包含gsl子文件夹的父目录。同样,您还必须指定目录以查找库。可以将include目录添加为带有-I选项的gcc的搜索路径,以及带有-L的库搜索路径。在您的情况下,通过将其添加到 GCC 编译中来完成:

-I/usr/local/include -L/usr/local/lib

答案 1 :(得分:0)

在我的情况下,这一行解决了这个链接错误

gcc $(gsl-config --cflags) name_of_file.c $(gsl-config --libs) -o name_of_file

请参阅Wiki

答案 2 :(得分:0)

就我而言,我只需要安装/更新gsl

brew install gsl