需要协助通过终端编译和运行 gcc(gsl) 程序

需要协助通过终端编译和运行 gcc(gsl) 程序

在 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的地方

截取 gsl 文件夹中的列表

答案1

-c开关告诉 gcc 将源代码编译为二进制目标代码,但不链接它来创建可执行程序:您首先需要删除它:

gcc -Wall -I/usr/local/include sample_matrix.c

然后你可能会发现有很多undefined reference to ...错误,因为你没有在命令行上指定要链接的相关库。(仅限头文件宣布事物;库定义它们)。如果您已将其安装gsl在标准位置(如)/usr/local,则它应该已将一个.pc文件放置在其中/usr/local/lib/pkgconfig/,以便您使用pkg-configex 自动指定库。

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`

相关内容