2010-09-24 13 views
2

Я получаю кучу ошибок связывания при попытке связать версию выпуска исполняемого файла (версия отладки не имеет такой же проблемы). Сравнение командной строки для ссылки не выявляет каких-либо проблем. Есть два типа ошибок, из которых я могу получить ручку.Ошибка связи при использовании Visual Studio 2005 (VC8)

Первый вид жалуется на неразрешенный внешний символ _ declspec (DllImport) В качестве примера: ошибка LNK2019: неразрешенный внешний символ " _declspec (DllImport) общественности: __thiscall stlpd_std :: basic_string, класс stlpd_std :: allocator> :: basic_string, class stlpd_std :: allocator> (класс stlpd_std :: basic_string, класс stlpd_std :: allocator> const &) "(_ imp 0? $ basic_string @ DV? $ char_traits @ D @ stlpd_std @@ V? $ allocator @ D @ 2 @@ stlpd_std @@ QAE @ ABV01 @@ Z) ссылка в функции "public: __thiscall Springfield :: generic :: runtime_error :: runtime_error (класс stlpd_std :: basic_string, c lass stlpd_std :: allocator> const &) "(?? 0runtime_error @ generic @ Springfield @@ QAE @ ABV? $ basic_string @ DV? $ char_traits @ D @ stlpd_std @@ V? $ allocator @ D @ 2 @@ stlpd_std @@ @Z)

для более читаемом версий (замена всех строк): ошибки LNK2019: неразрешенный внешний символ «__declspec (DllImport) общественности: __thiscall строки :: basic_string, класс stlpd_std :: распределитель> (класс string const &) "(_ imp 0? $ basic_string @ DV? $ char_traits @ D @ stlpd_std @@ V? $ allocator @ D @ 2 @@ stlpd_std @@ QAE @ ABV01 @@ Z), на который делается ссылка в function "public: __thiscall Springfield :: generic :: runtime_error :: runtime_error (строка класса const &)" (0runtime_error @ generic @ Springfield @@ QAE @ ABV? $ Basic_string @ DV? $ Char_traits @ D @ stlpd_std @@ V? $ Allocator @ D @ 2 @@ stlpd_std @@@ Z

Класс ошибок sceond жалуется на неразрешенный внешний символ __CrtDbgReportW

Надеюсь, я смогу получить представление о том, как справиться с этим.

+0

Все ли перестроено? Вы связываете библиотеки, которым нужен отладочный CRT? Вы используете правильные заголовки? Используйте/showIncludes, чтобы убедиться. –

ответ

2

Из-за ошибок, похоже, что вы не включаете CRT в качестве одной из ваших связанных библиотек. Вот ссылка на разные CRT библитеков предлагаются в Visual Studio 2005. Выберите тот, который является наиболее подходящим и убедитесь, что он находится в списке библитеков связать с

+0

Спасибо за предложение, попробуем. – Pradyot

+0

Оказывается, у меня была директива препроцессора _DEBUG в визуальной студии. – Pradyot

1

Это выглядит как вы либо включаете файл, который был создан с использованием параметров отладки, либо вы смешиваете библиотеки времени выполнения (DLL и статические).

+0

Спасибо, очень ценится. – Pradyot