Ошибка ссылки std :: iostream vs2010 rc1 - PullRequest
1 голос
/ 16 марта 2010

Я конвертирую проект из vs2008 в vs2010 и получаю ошибки компоновщика для std: ifstream / ofstream

error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool __thiscall std::basic_ofstream<char,struct std::char_traits<char> >::is_open(void)const " (__imp_?is_open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QBE_NXZ)

Построение static (/ MT) или dll (/ MD) с юникодом или стандартом и release / debug выдает ту же ошибку. Добавление компоновщика libcpmtd.lib (static) или msvcprtd.lib (dll) вручную в компоновщик не помогает.

Кто-нибудь еще видел это?

1 Ответ

1 голос
/ 16 марта 2010

Если вы не получили ответа на эту конкретную проблему, есть подход грубой силы, который я использовал с большим успехом:

Используя Visual Studio 2010, создайте новый проект того же типа во временной папке где-нибудь (используйте то же имя проекта и решения) и убедитесь, что вы используете те же параметры, что и у вашего проекта VS2008.

На этом этапе вы можете просто сравнить новый файл проекта VS2010 с файлом вашего существующего проекта VS2008, используя инструмент визуального сравнения (мне нравится BeyondCompare ). Файлы проекта представляют собой XML, поэтому их легко визуально сравнить. Из этого сравнения я обычно могу сказать, какие библиотеки и другие параметры нужно изменить.

Если в старом файле проекта слишком много изменений (что затрудняет сравнение), повторите описанные выше шаги (на этот раз с использованием VS2008), чтобы создать другой проект с обычной строкой, записав его в другое временное местоположение.

Теперь вы сможете сравнить файлы проектов VS2008 и VS2010, чтобы увидеть, чем отличаются параметры complete и link.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...