std :: tr1 :: function为VS2008 SP1中的x64配置提供链接错误

时间:2013-12-04 11:44:26

标签: c++ visual-studio-2008 c++11

在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)

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题!我检查了我的vs2008版本和项目设置,看起来一切都还可以。在Win32配置中,没有错误,但X64我得到了与你相同的链接错误。

最后,我再次安装vs2008 sp1(注意:不重新安装,只需再次运行vs2008 sp1 setup)。链接错误消失了。

我不知道为什么,但也许你可以尝试解决这个问题。