Я обновляю базу кода C ++ с VS2005 до VS2010 и перестраиваю некоторые сторонние зависимости C ++. У меня нет проблем со сборкой этих 32-битных, но продолжаю сталкиваться с проблемами связывания 64-битных (x64). Я получаю неразрешенные внешние ссылки для ряда стандартных библиотечных функций. Например:
error LNK2001: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::~basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(void)" (__imp_??1?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@XZ)
error LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >(char const *)" (__imp_??0?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@PEBD@Z) referenced in function "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __cdecl YAML::Exp::Escape(class YAML::Stream &,int)" (?Escape@Exp@YAML@@YA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAVStream@2@H@Z)
Я попытался явно добавить msvcprtd.lib в строку ссылки и включил отладку разрешения библиотеки, и он, похоже, ищет C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ lib \ amd64 \ msvcprtd.lib для символов но не находит их.
Кто-нибудь знает, почему это происходит?