尽管程序编译成功,但计算机拒绝运行包括GSL功能在内的程序。例如,考虑作为一个例子给出的GSL网站上的以下程序:C:运行GSL功能
// Test program for GSL RNG
#include <stdio.h>
#include <gsl/gsl_rng.h>
int main (void)
{
const gsl_rng_type * T;
gsl_rng * r;
int i, n = 10;
gsl_rng_env_setup();
T = gsl_rng_default;
r = gsl_rng_alloc (T);
for (i = 0; i < n; i++)
{
double u = gsl_rng_uniform (r);
printf ("%.5f\n", u);
}
gsl_rng_free (r);
return 0;
}
这将编译,但后来在执行过程中提供了以下错误:
/tmp/ccPWUHlO.o: dans la fonction « main »:
GSL_rng_test.cc:(.text+0x10): référence indéfinie vers « gsl_rng_env_setup »
GSL_rng_test.cc:(.text+0x17): référence indéfinie vers « gsl_rng_default »
GSL_rng_test.cc:(.text+0x27): référence indéfinie vers « gsl_rng_alloc »
GSL_rng_test.cc:(.text+0x46): référence indéfinie vers « gsl_rng_uniform »
GSL_rng_test.cc:(.text+0x7d): référence indéfinie vers « gsl_rng_free »
collect2: erreur: ld a retourné 1 code d'état d'exécution
对不起,这是在法国,但我认为你会理解这个主意。 GSL已经安装,我自己检查了头文件的存在。有人可以帮忙吗?
C!= C++,并且您的标题指定C,而您的'.cc'文件扩展名似乎指示C++。一般来说,除非您提出有关不同或相似之处的问题,否则您只应标记您正在编写/编译的语言。 – crashmstr