Sobol数字C ++

时间:2014-05-23 21:58:06

标签: c++ random

编辑:我想我会在下面讲述的书的帮助下实现我自己的Sobol和/或Halton生成器。我可能不会使用我试图使用的实现。知道如何告诉链接器查看(n外部).dll文件的答案仍然是一件好事。

  1. C ++初学者。

  2. 我需要Sobol数字作为较大项目的次要部分。

  3. 使用依赖于我可能需要安装/编译的其他库的实现,会产生我需要学习的内容,而且我不知道更大的内容。

  4. 我发现了这个(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;

1 个答案:

答案 0 :(得分:2)

您是否在VS项目中添加了.lib导入库文件?因为看起来你没有,因此链接器错误。 您需要告诉链接器,也包括该DLL。