2

尝试使用 GSL 在 Windows 上的 C 中生成 beta 分布的随机偏差。程序不会链接,给出众所周知的“错误 LNK2001:无法解析的外部符号 _gsl_rng_default”错误消息。

问题在于 GSL 的一般安装。我可以编译和调用 cdf 函数就好了。但是,为了记录:

程序有以下内容:

#include <gsl/gsl_randist.h>

#include <gsl/gsl_cdf.h>

#include <gsl/gsl_rng.h>

Configuration Properties->C/C++->General->Additional Include Directories 指向 GSL-1.15\include 目录。

Configuration Properties->Linker->General->Additional Library Directories 指向 GSL-1.15\lib 目录。

Configuration Properties->Linker->Input->Additional Dependencies 有两个入口,libgsl.dll.a 和 libgslcblas.dll.a

如果删除该行,程序将编译并链接T = gsl_rng_default;
T = gsl_rng_default;程序编译不链接。

尝试将 GSL_DLL 作为预处理器定义。对问题没有影响。

#define GSL_DLL在程序顶部尝试。仍然对问题没有影响。

尝试了配置属性->C/C++->代码生成->运行时库下的所有设置选项。对问题没有影响。

是否必须使用另一个开关才能使其与 Visual Studio 2008 一起使用?

4

1 回答 1

2

将“GSL_DLL”添加到配置 -> C/C++ -> 预处理器 > 预处理器定义。

于 2014-03-19T12:57:35.707 回答