Я хочу скомпилировать и связать свой проект в Visual Studio 2008 как проект отладки (MTd). Этот проект включает в себя несколько внешних DLL, и одна из этих DLL - это как версия без отладки (версия MD и MT). Теперь, если я попытаюсь связать свой проект, он либо говорит о переделке содержимого в LIBCMT.lib и LIBCMTD.lib, либо если я попытаюсь не разрешить не-отладочную версию (/ NODEFAULTLIB: LIBCMT), у нее отсутствуют символы.Visual Studio C++ - ссылка LIBCMT.lib и LIBCMTD.lib (версия отладки)
Теперь я мог бы использовать версию MT всех внешних библиотек, но я все еще не могу скомпилировать & ссылку на нее как версию MTd для отладки моего проекта из-за тех же ошибок.
Альтернативным способом (на мой взгляд) было бы дать возможность переопределения, которое, по моему мнению, возможно @ gnu compiler/linker, но я ничего не мог найти об этом для C++ visual studio.
Любые идеи о том, как справиться с этой проблемой? (Помните: невозможно скомпилировать внешние DLL как debug-dll)
В качестве дополнительного общего вопроса: возможно ли создать отладочный проект, в котором используется не-debug-dll?
Вы пытаетесь умышленно использовать * несколько * версий CRT в своей программе. Вы получите один для своего EXE, а другой для своих DLL, возможно, больше. Это очень, очень неразумно, у вас будут серьезные проблемы с передачей объектов и указателей между ними. Используйте/MD последовательно, так что в программе есть только один CRT. –
Да, это неразумно и необходимо ... потому что мне нужен проект для отладки и просто есть версии некоторых внешних DLL-версий. Для сборки релизов это всегда согласовано. –
Вам нужно поговорить с программистами, которые работали над этими DLL. Конечно, они могут предоставить вам отладочную сборку. Вряд ли вы найдете их здесь. –