Я использую CMake генерироваться решением для Visual Studio 2010.Visual Studio не перезаписывает выходные библиотеки для различных конфигураций сборки
В своем решении я несколько lib
проектов и один exe
проекта. Для Debug
конфигурации сборки я использую имена выходных как lib1_d.lib
, lib2_d.lib
и т.д. ...
Для Release
конфигурации сборки я использую lib1.lib
, lib2.lib
...
благодаря CMake у меня есть одна дополнительная конфигурация сборки я использую - RelWithDebugInfo
, Я использую те же выходные имена для этой конфигурации сборки, что и для Release
.
Теперь вот проблема:
Предполагая, что все будет очищено.
Я ударил F5
(запуск/запуск отладки) RelWithDebugInfo
. Все проекты построены (exe
зависит от них), и проект выполняется успешно.
Я переключился на Release
и еще раз ударил F5
. Все проекты построены и проект успешно завершен. (библиотеки в выходной директории перезаписаны)
Я возвращаюсь обратно к RelWithDebugInfo
и ударяю F5
. VS быстро проходит и дает All outputs are up-to-date.
... Build succeeded.
И НЕ перезаписывает lib
файлы в выходном каталоге. Таким образом, приложение вылетает из-за использования библиотек для другой конфигурации сборки.
Эта проблема возникает, как для заказа Release->RelWithDebugInfo
и RelWithDebugInfo->Release
я не найти решение, как добавить другой префикс RelWithDebugLibraries
my SO question
Есть ли способ, чтобы заставить Visual Studio 2010
всегда перезаписывать выходы? Предпочтительно какой-то флаг, который я могу предоставить от CMake.
Вы помещаете более одной конфигурации в одну папку? Как сказал в своем ответе Ханс Пассант, мои файлы Release и RelWithDebInfo находятся в отдельных папках. И это для проектов, созданных CMake. – drescherjm