GSL 中未定义的引用
Undefined references in GSL
我正在尝试 link gsl 在一个小的 c 程序中。
#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 returns
/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
returns 正确的符号,就像搜索我的 headers 一样。一切都在 /usr/lib
或 /usr/include
我做错了什么?
我是从 ubuntu 论坛上得到的。 gcc
的参数顺序可能是问题
gcc -o program program.c `gsl-config --cflags --libs`
我正在尝试 link gsl 在一个小的 c 程序中。
#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 returns
/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
returns 正确的符号,就像搜索我的 headers 一样。一切都在 /usr/lib
或 /usr/include
我做错了什么?
我是从 ubuntu 论坛上得到的。 gcc
的参数顺序可能是问题
gcc -o program program.c `gsl-config --cflags --libs`