C++ Sobol编号C++;

C++ Sobol编号C++;,c++,random,C++,Random,编辑:我想我会在下面介绍的书的帮助下实现自己的Sobol和/或Halton生成器。我可能不会使用我试图使用的实现。不过,知道如何告诉链接器查看(n external).dll文件的答案还是不错的 C++初学者 我需要Sobol数字作为一个更大项目的一个小部分 使用一个依赖于我可能必须安装/编译的其他库的实现,使得我需要学习的东西的数量更大,我不知道 我发现了Sobol数的()实现。它有一个dll(我猜它是一个编译过的库)这一事实使我认为它可能是独立的 我在main.cpp中获取了main()的内

编辑:我想我会在下面介绍的书的帮助下实现自己的Sobol和/或Halton生成器。我可能不会使用我试图使用的实现。不过,知道如何告诉链接器查看(n external).dll文件的答案还是不错的

  • C++初学者

  • 我需要Sobol数字作为一个更大项目的一个小部分

  • 使用一个依赖于我可能必须安装/编译的其他库的实现,使得我需要学习的东西的数量更大,我不知道

  • 我发现了Sobol数的()实现。它有一个dll(我猜它是一个编译过的库)这一事实使我认为它可能是独立的

    我在main.cpp中获取了main()的内容,并将其放在控制台应用程序的main()中。还接受了指令(!?)

    并将它们放在main()之外的控制台应用程序中

    把其他文件放进去

    SobolSeq51.dll
    sobolseq51.H
    SobolSeq51.lib
    
    在我的控制台应用程序目录中,以便项目的其余部分可以看到它们

    编译并获得

    1> ----构建已启动:项目:ConsoleApplicationProject4,配置:调试Win32------

    1> 控制台应用程序项目4.cpp

    1> 控制台应用程序项目4.obj:错误LNK2019:未解析的外部符号“int u cdecl SobolSeq51(长、int、双*)”(?SobolSeq51@@YAHJHPAN@Z)在函数\u wmain中引用

    1> C:\Users\Franklin\Documents\WORK\FinancialMathematics\FinancialC++\Project4\ConsoleApplicationProject4\Debug\ConsoleApplicationProject4.exe:致命错误LNK1120:1未解析的外部 ======生成:0成功,1失败,0最新,0跳过==========

    其main()中的代码是

    长i_SobolSeq51=1

    整数n_总计=64;//总分

    双sobolseq向量[n_维]


    您是否在VS项目中添加了.lib导入库文件?因为您似乎没有,所以链接器出现错误。
    你需要告诉链接器,也包括那个DLL

    你又发了同样的问题吗?@olevegard同样的一般问题,不是同样的问题。这一次,正如他们所说,它是“具体的”。但你不应该每次都发布新问题,而应该更新已经存在的问题。@olevegard这些网站的“设计”问题是,声誉相对较低的人可以关闭问题+关闭的问题很少得到跟进。这为初学者的问题制造了一个陷阱。你需要告诉链接器你需要库文件。看,不,我没有做任何具体的事情。这是通过在开头添加#include“…”和相应文件的名称来实现的吗?嗯#include是用于标题-但是你也需要库->实现代码驻留在该.dll中,所以你的链接器必须知道如何将它链接到你的程序。我不知道是如何做到的。我刚刚为所有这些文件添加了#include,但正如您所说,这不是解决方案。
    #include“…”
    允许您使用
    #include
    文件中声明的函数和类型。但是,当编译器着手实际创建
    .exe
    文件时,它必须链接到实际的函数实现中。您不必太担心细节,但您需要告诉编译器有关
    .lib
    文件的信息,并确保在运行最终程序时
    .dll
    文件可用。@ABC这看起来像Visual Studio,因此在代码中放入
    #pragma注释(lib,“SobolSeq51.lib”)
    SobolSeq51.dll
    sobolseq51.H
    SobolSeq51.lib
    
      SobolSeq51(i_SobolSeq51++, n_dimension, SobolSeqVector);
    
      cout << " SobolSeq51[" << i << "]=" << SobolSeqVector[0] << endl;