在 C++ 脚本中包含 GNU 库时遇到问题:
#include <stdio.h>
#include <gsl/gsl_math.h>
#include <gsl/gsl_sf_bessel.h>
int main (void)
{
double x = 5.0;
double y = gsl_sf_bessel_J0 (x);
printf ("J0(%g) = %.18e\n", x, y);
return 0;
}
在shell中运行后:
g++ -lgsl -lgslcblas -lm -o prova prova.cpp
我得到:
/tmp/cc4EUwzZ.o: In function `main':
prova.cpp:(.text+0x23): undefined reference to `gsl_sf_bessel_J0'
collect2: error: ld returned 1 exit status
如果我输入以下内容,也会得到相同的输出:
g++ -o prova prova.cpp
或者
g++ -Wall -I/usr/include/gsl -lgsl -o prova prova.cpp
看来我没有正确链接该库。
如果我输入
pkg-config --cflags gsl
我明白了
-I/usr/local/include
我怎样才能解决这个问题?