2010-07-23 2 views
0

Я обновляю базу кода C++ от VS2005 до VS2010, и я перестраиваю некоторые зависимые от C++ зависимости. У меня нет проблем с созданием этих 32-битных, но у меня проблемы с связыванием 64-разрядных (x64). Я получаю нерешенные внешние для ряда стандартных функций библиотеки. Например:Ошибка связи C++ в Visual Studio 2010 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)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 

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 *)" ([email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@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)" ([email protected]@[email protected]@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]@[email protected]) 

Я попытался явно добавлять msvcprtd.lib к линии связи и включена отладка библиотеки разрешения и, как представляется, поиск C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ Lib \ amd64 \ msvcprtd.lib для символов, но не находит их.

У кого-нибудь есть идеи, почему это происходит?

ответ

2

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

+0

Похоже, в этом была проблема. Похоже, что это относится к более старым VS, где используется. В конечном итоге я обнаружил проблему. В D & S \ Application Data \ MSBuild были указаны листы свойств, которые указывали на старые каталоги VS include. – Trevor

Смежные вопросы