gpt4 book ai didi

c++ - C:运行GSL函数

转载 作者:行者123 更新时间:2023-11-30 19:13:09 24 4
gpt4 key购买 nike

尽管程序编译成功,但计算机拒绝运行包含 GSL 函数的程序。例如,考虑 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 已安装,我自己检查了头文件是否存在。有人可以帮忙吗?

最佳答案

看来您没有正确链接 GSL 库。例如,如果 GSL 库的相对路径是 LIB_GSL,并且您想静态链接 GSL 库,则需要包含如下所示的行(针对 GSL 1.16 进行测试)

LIB_GSL/.libs/libgsl.a

如果您也使用 BLAS 功能并且不自行链接任何其他 BLAS 库,您还应该链接 GSL 中包含的 BLAS 库,如果您静态链接(经过测试)对于 GSL 1.16):

LIB_GSL/cblas/.libs/libgslcblas.a

关于c++ - C:运行GSL函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35845613/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com