编辑:我想我会在下面讲述的书的帮助下实现我自己的Sobol和/或Halton生成器。我可能不会使用我试图使用的实现。知道如何告诉链接器查看(n外部).dll文件的答案仍然是一件好事。
C ++初学者。
我需要Sobol数字作为较大项目的次要部分。
使用依赖于我可能需要安装/编译的其他库的实现,会产生我需要学习的内容,而且我不知道更大的内容。
我发现了这个(http://www.broda.co.uk/dl/download.php?f=b0d0839560fd157a3a6fb15cbf2bfc99)Sobol数字的实现。它有一个dll(我猜是一个编译库)的事实让我觉得它可能是独立的。
我在main.cpp中获取了main()的内容,并将它放在我的控制台应用程序的main()中。也采用了指令(!?)
#include "sobolseq51.h"
#define n_dimension 1
并将它们放在main()之外的控制台应用程序中。
放入其他文件
SobolSeq51.dll
sobolseq51.H
SobolSeq51.lib
在我的控制台应用程序目录中,以便项目的其余部分可以看到它们。
编译并获得
1> ------ Build build:Project:ConsoleApplicationProject4,Configuration:Debug Win32 ------
1> ConsoleApplicationProject4.cpp
1> ConsoleApplicationProject4.obj:错误LNK2019:未解析的外部符号" int __cdecl SobolSeq51(long,int,double *)" (?SobolSeq51 @@ YAHJHPAN @ Z)在函数_wmain
中引用1> C:\ Users \ Franklin \ Documents \ WORK \ FinantialMathematics \ FinancialC ++ \ Project4 \ ConsoleApplicationProject4 \ Debug \ ConsoleApplicationProject4.exe:致命错误LNK1120:1未解析的外部 ==========构建:0成功,1个失败,0个最新,0个跳过==========
main()中的代码是
长i_SobolSeq51 = 1;
int n_total = 64; //总分数
double SobolSeqVector [n_dimension];
cout<< " Sobol'顺序为n =" << n_dimension<< ENDL;
for(int i = 1; i< = n_total; i ++)
{
SobolSeq51(i_SobolSeq51++, n_dimension, SobolSeqVector); cout << " SobolSeq51[" << i << "]=" << SobolSeqVector[0] << endl;
}
返回0;
答案 0 :(得分:2)
您是否在VS项目中添加了.lib导入库文件?因为看起来你没有,因此链接器错误。 您需要告诉链接器,也包括该DLL。