在 ubuntu 18.04 上安装了 gsl 2.5。
尝试编译并运行样本矩阵.c脚本使用
$ gcc -Wall -I/usr/local/include -c sample_matrix.c
运行成功;进一步显示输出,
$./a.out 复制代码
给出错误:
bash:./a.out:没有这样的文件或目录
我当前位于名为“gsl”的文件夹中,其中保存了sample_matrix.c文件,并且该文件夹也是我安装gsl pkg的地方
答案1
该-c
开关告诉 gcc 将源代码编译为二进制目标代码,但不链接它来创建可执行程序:您首先需要删除它:
gcc -Wall -I/usr/local/include sample_matrix.c
然后你可能会发现有很多undefined reference to ...
错误,因为你没有在命令行上指定要链接的相关库。(仅限头文件宣布事物;库定义它们)。如果您已将其安装gsl
在标准位置(如)/usr/local
,则它应该已将一个.pc
文件放置在其中/usr/local/lib/pkgconfig/
,以便您使用pkg-config
ex 自动指定库。
gcc -Wall -I/usr/local/include sample_matrix.c `pkg-config --libs gsl`
(注意参数的顺序:引用从左到右解析)。您可能还可以使用它pkg-config
来定位头文件,即
gcc -Wall sample_matrix.c `pkg-config --cflags --libs gsl`