在x64配置中使用std :: tr1 :: function,我在VS2008SP1中得到以下链接错误。相同的代码适用于Win32配置。这是64位编译器中的错误,还是我错过了什么?
#include <iostream>
#include <functional>
typedef std::tr1::function<void()> FnCallBack;
void test()
{
std::cout << "Test";
}
int main(int argc, char* argv[])
{
FnCallBack f = &test;
f();
return 0;
}
错误LNK2019:未解析的外部符号“__declspec(dllimport)void __cdecl std :: tr1 :: Xfunc(void)”( _imp _?_ Xfunc @ tr1 @ std @@ YAXXZ)在函数中引用“ public:void __cdecl std :: tr1 :: _ Function_impl0 :: operator()(void)const“(?? R?$ _ Function_impl0 @ X @ tr1 @std @@ QEBAXXZ)
答案 0 :(得分:0)
我遇到了同样的问题!我检查了我的vs2008版本和项目设置,看起来一切都还可以。在Win32配置中,没有错误,但X64我得到了与你相同的链接错误。
最后,我再次安装vs2008 sp1(注意:不重新安装,只需再次运行vs2008 sp1 setup)。链接错误消失了。
我不知道为什么,但也许你可以尝试解决这个问题。