После прохождения через длительный процесс переименования проекта, мой DLL проект не будет строить в режиме отладки (Release строит работу):Как я могу найти причину ошибки компоновщика?
MSVCRTD.lib(msvcr90d.dll) : error LNK2005: _CrtDbgReportW already defined in LIBCMTD.lib(dbgrpt.obj)
Этот проект, и пять статических библиотек он зависит, устанавливаются используйте «Multi-threaded Debug (/ MTd)» (в разделе C/C++ | Генерация кода | Библиотека времени выполнения). Я считаю, что LIBCMTD.lib является одним для многопоточной отладки, но что такое MSVCRTD.lib и что может вызвать эту ошибку?
Если это имеет значение, эта DLL предназначена для Windows CE.
Вы также можете найти сведения о которая используется для компиляции и связывания в узле C++/Code Generation свойств проекта для любого из ваших проектов в среде IDE. – ReWrite
Возможно, вы правы. Я забыл о шестой библиотеке, которую получил у другого разработчика. Похоже, что сборка Release работала, потому что Visual Studio случайно решила использовать динамическую ссылку для нее (несмотря на мой запрос на статическую привязку), в то время как сборка Debug пыталась использовать статическое связывание (вызывая ошибку компоновщика при связывании с библиотекой). – Qwertie
Спасибо за упоминание управления памятью как потенциальную проблему, но это не должно быть проблемой в моем случае, потому что моя DLL - это COM-библиотека.Фактически, мое приложение заменяет глобальных операторов новыми и удаляет с помощью специального менеджера памяти, но это не проблема для клиентов, поскольку COM изолирует управление памятью. – Qwertie