C++ xDispatch LNK2019链接器错误未解析外部

C++ xDispatch LNK2019链接器错误未解析外部,c++,lnk2019,C++,Lnk2019,我意识到这是一个非常受欢迎的问题,但所有其他帖子似乎都遵循同样的想法。需要正确配置include、lib和bin文件夹。我相信我的设置是正确的,但我仍然得到LNK2019错误。我做错了什么 使用Visual Studio 2012 我得到了臭名昭著的LNK2019错误。这个问题的许多帖子似乎认为这是一个链接器问题。我正在使用一个带有lib和dll文件的库。项目文件夹具有需要在项目中配置的include、bin和lib文件夹 安装说明在这里。。。。。 然而,这显然是一个链接器问题,因为它发生在其

我意识到这是一个非常受欢迎的问题,但所有其他帖子似乎都遵循同样的想法。需要正确配置include、lib和bin文件夹。我相信我的设置是正确的,但我仍然得到LNK2019错误。我做错了什么

使用Visual Studio 2012

我得到了臭名昭著的LNK2019错误。这个问题的许多帖子似乎认为这是一个链接器问题。我正在使用一个带有lib和dll文件的库。项目文件夹具有需要在项目中配置的include、bin和lib文件夹

安装说明在这里。。。。。

然而,这显然是一个链接器问题,因为它发生在其他类似类型的库中。我已经按照其他帖子的说明写了,我还是有点迷路。我相信这应该是正确的,但我已经尝试了几乎所有可能的组合。不明白

我的项目配置

C++->General->Additional Include目录。 C:\Users\Daniel\Documents\visualstudio 2012\Projects\LibDispatchTest\xdispatch\u 0.7.2\u visualstudio 10\u i386\include;%(其他包括董事)

链接器->常规->附加库目录 C:\Users\Daniel\Documents\visualstudio 2012\Projects\LibDispatchTest\xdispatch\u 0.7.2\u visualstudio 10\u i386\lib;%(附加图书馆目录)

链接器->输入->其他依赖项: ..…uuid.lib;odbc32.lib;odbccp32.lib;xdispatch.lib;%(附加依赖项)

环境变量

我设置了PATH变量

C:\chocolate\bin;C:\Users\Daniel\Documents\visualstudio 2012\Projects\VisionBase\xdispatch\u 0.7.2\u visualstudio 10\u i386\bin

错误消息如下:

error LNK2019: unresolved external symbol "_declspec(dllimport) public: void __thiscall xdispatch::queue::async(class std::function<void __cdecl(void)> const &)" (__imp?async@queue@xdispatch@@QAEXABV?$function@$$A6AXXZ@std@@@Z) referenced in function "void __cdecl some_function(void)" (?some_function@@YAXXZ)   c:\Users\Daniel\documents\visual studio 2012\Projects\LibDispatchTest\LibDispatchTest\main.obj  LibDispatchTest 

error LNK1120: 1 unresolved externals   c:\users\daniel\documents\visual studio 2012\Projects\LibDispatchTest\Debug\LibDispatchTest.exe 1   1   LibDispatchTest
错误LNK2019:未解析的外部符号“\u declspec(dllimport)public:void\u thiscall xdispatch::queue::async(class std::function const&”)(\u imp?async@queue@xdispatch@@QAEXABV?$函数@$$A6AXXZ@std@@@Z) 在函数“void\u cdecl some\u函数(void)”中引用(?some\u函数@@YAXXZ)c:\Users\Daniel\documents\visual studio 2012\Projects\LibDispatchTest\LibDispatchTest\main.obj LibDispatchTest
错误LNK1120:1未解析的外部c:\users\daniel\documents\visual studio 2012\Projects\LibDispatchTest\Debug\LibDispatchTest.exe 1 1 LibDispatchTest
说真的,我完全迷路了,我不知道我做错了什么

编辑1

这类似于上面链接中的一个示例,但修改为仅计数1000000^2并打印一些内容。我们只是想能够编译和运行这个样本,我可以纠正我的大项目显示这个问题。这个项目是用最简单的代码,是我需要得到工作的代表性新鲜。此示例和我的其他项目都存在此问题,并产生相同的错误

#include <xdispatch/dispatch>
#include <vector>
#include <cmath>

class SomeData {    
public:      
std::vector<double> a;   
std::vector<double> b;   
std::vector<double> c;   
std::vector<double> results;  
};

void do_calculations(SomeData* sd){

       // our output will go in here
       sd->results = std::vector<double>(sd->a.size());

       // the calculation - running on one thread only
       for(unsigned int i = 0; i < 1000000; i++){
              sd->results[i] = 0;
              for(unsigned int j = 0; j < 10000000; j++){
                     for(unsigned int z = 0; z < sd->c.size(); z++){
                            std::cout << i << " " << j << std::endl;
                     }
              }
       } }

/*  This function is getting called  from your main thread also powering  the user interface  */ 

void some_function() {
           SomeData* sd = new SomeData();       
           xdispatch::global_queue().async(${

                  // execute the heavy code
                  do_calculations(sd);
           }); } 

int main() {    
some_function();
    return 0; }
#包括
#包括
#包括
类SomeData{
公众:
std::载体a;
std::载体b;
std::向量c;
std::矢量结果;
};
无效do_计算(SomeData*sd){
//我们的产量将在这里
sd->results=std::vector(sd->a.size());
//计算-仅在一个线程上运行
对于(无符号整数i=0;i<1000000;i++){
sd->结果[i]=0;
对于(无符号整数j=0;j<10000000;j++){
对于(无符号整数z=0;zc.size();z++){

STD::CUT< P>使用的二进制文件,在这里使用MS VisualStudio 2010。此后,CRT发生了很大变化,可能不兼容,尤其是在使用STL的部分时。因此,我不建议使用VS 2010构建的C++ DLL,用于VS 2012或更高版本。但在运行时,您会遇到一些奇怪和意外的问题。在您的情况下,即使链接也无法工作,因为std::function在此期间更改了其签名,幸运的是,您已经在编译时发现了这些不兼容

我假设xdispatch可以很好地与VS2012甚至VS2013配合使用,但是您需要自己构建。所有需要的信息汇总在[1]中。包含源代码的tarball始终可以在[2]中找到

[1]

[2]

如果不显示准确的错误,则无法帮助您。错误1错误LNK2019:未解析的外部符号“\u declspec(dllimport)public:void\u thiscall xdispatch::queue::async(class std::function const&”)(\u imp?async@queue@xdispatch@@QAEXABV?$函数@$$A6AXXZ@std@@@Z) 函数“void”中引用了一些函数(void)(?某些_函数@@YAXXZ)c:\Users\Daniel\documents\visualstudio 2012\Projects\LibDispatchTest\LibDispatchTest\main.obj libdispatchtester错误2 LNK1120:1未解析外部c:\Users\Daniel\documents\visualstudio 2012\Projects\LibDispatchTest\Debug\LibDispatchTest.exe 1 1 1 LibDispatchTestApologies,根据我所读到的内容,我假设这里通常就是这个地方问题发生在哪里,错误似乎证实了这一点,但没有提供任何我认为解决这个问题有用的东西,因为我尝试从其他职位的建议中失败了。@ USER 2623 463你可能会考虑接受现金奖励提议。(请在评论中加入
@computerfreaker
)我会回答你的问题。你自己没有足够的代表,但我愿意帮助你。