Ошибка ссылки C++ в Visual Studio 2010 x64

Я обновляю кодовую базу С++ с VS2005 до VS2010 и перестраиваю некоторые сторонние зависимости С++. У меня нет проблем с созданием этих 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 для символов, но не найти их.

Кто-нибудь знает, почему это происходит?


person Trevor    schedule 23.07.2010    source источник


Ответы (1)


Вы можете попробовать включить /showIncludes, чтобы увидеть, какие файлы заголовков вводятся. Потому что в целом я ожидаю, что эти функции будут встроены в ваш результирующий двоичный файл.

person Kip Streithorst    schedule 23.07.2010
comment
Похоже, это была проблема. Кажется, это включает в себя старые VS, где они использовались. В конце концов я отследил проблему. В D&S\Application Data\MSBuild были листы свойств, которые указывали на более старые каталоги включения VS. - person Trevor; 23.07.2010