c - GSL 中 undefined reference

标签 c gcc undefined-reference gsl

我正在尝试在一个小型 C 程序中链接 gsl。

#include "stdlib.h"
#include "stdio.h"
#include "gsl/gsl_block_float.h"
#include "gsl/gsl_matrix_float.h"

int main(void)
{
  gsl_matrix_float* m = gsl_matrix_float_alloc(2, 2);
  gsl_matrix_float_fprintf(stdout, m, "%f");
}

我正在使用 gcc -lgsl -lgslcblas -lm program.c 进行编译。我也尝试过 gcc $(pkg-config --cflags gsl) $(pkg-config --libs gsl) program.c 以及 gsl-config .在每种情况下,gcc 都会返回

/tmp/cc1wKgXm.o: In function `main':
program.c:(.text+0x13): undefined reference to `gsl_matrix_float_alloc'
program.c:(.text+0x32): undefined reference to `gsl_matrix_float_fprintf'
collect2: error: ld returned 1 exit status

objdump --syms/usr/lib/libgsl.so | grep gsl_matrix_float 返回正确的符号,就像搜索我的标题一样。一切都在 /usr/lib/usr/include 我做错了什么?

最佳答案

我是从 ubuntu 论坛上得到的。 gcc 的参数顺序可能是问题所在

gcc -o program program.c `gsl-config --cflags --libs`

关于c - GSL 中 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31600507/

相关文章:

c - 从磁盘/CD/USB 启动

在 C 中检查对 _Generic() 选择的支持

c++ - 崩溃调查,从 .so 文件中恢复符号

c - 如何使 scanf 读取超过 4095 个字符作为输入?

C++ 模板, undefined reference

C++ 模板类静态常量变量成员作为映射键给出 undefined reference

c - 指针明显无缘无故地改变 - C

C:使用链表向结构添加数据

c - 您是否应该尝试始终以最大线程数运行 CUDA C 硬件?

linker - undefined reference - 尽管链接器找到了 lib