我从官方gnu手册中复制了以下代码,用于随机数生成器:
#include <stdio.h>
#include <gsl/gsl_rng.h>
#include <gsl/gsl_randist.h>
int main (void)
{
const gsl_rng_type * T;
gsl_rng * r;
int i, n = 10;
double mu = 3.0;
/* create a generator chosen by the
environment variable GSL_RNG_TYPE */
gsl_rng_env_setup();
T = gsl_rng_default;
r = gsl_rng_alloc (T);
/* print n random variates chosen from
the poisson distribution with mean
parameter mu */
for (i = 0; i < n; i++)
{
unsigned int k = gsl_ran_poisson (r, mu);
printf (" %u", k);
}
printf ("\n");
gsl_rng_free (r);
return 0;
}
然后我将相应的lib-directory,bin-directory和include-directory添加到我的DevCpp项目中(这似乎工作正常,因为在此之前,DevCpp甚至无法找到这些文件)。但是,当我尝试编译这些文件时,出现以下错误:
[链接器错误]未定义参考&#39; gsl_rng_env_setup&#39;
[链接器错误]未定义引用&#39; gsl_rng_default&#39;
......甚至更多,都可能是指gsl_rng和gsl_randist中定义的函数。另外,在main(void)等之前声明gsl_rng_env_setup并没有帮助(然后我会产生歧义)。你知道如何解决这个问题吗?我使用Windows 7,64位系统和DevCpp来编译C / C ++代码。我甚至尝试过不同的构建gsl-library的方法(例如,从源代码构建,然后,当我遇到此错误时,使用非官方的Windows安装程序),但是没有一种方法可以解决这个问题。