C++ xDispatch LNK2019链接器错误未解析外部
我意识到这是一个非常受欢迎的问题,但所有其他帖子似乎都遵循同样的想法。需要正确配置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 错误消息如下:C++ xDispatch LNK2019链接器错误未解析外部,c++,lnk2019,C++,Lnk2019,我意识到这是一个非常受欢迎的问题,但所有其他帖子似乎都遵循同样的想法。需要正确配置include、lib和bin文件夹。我相信我的设置是正确的,但我仍然得到LNK2019错误。我做错了什么 使用Visual Studio 2012 我得到了臭名昭著的LNK2019错误。这个问题的许多帖子似乎认为这是一个链接器问题。我正在使用一个带有lib和dll文件的库。项目文件夹具有需要在项目中配置的include、bin和lib文件夹 安装说明在这里。。。。。 然而,这显然是一个链接器问题,因为它发生在其
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
)我会回答你的问题。你自己没有足够的代表,但我愿意帮助你。