儘管程序編譯成功,但計算機拒絕運行包括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