2012-02-02 2 views
1

У меня есть этот набор в моем файле CMakeLists.txt.Как определить отладочную сборку в моих исходных файлах c с помощью cmake?

SET (CMAKE_BUILD_TYPE "Отладка")

Однако, это не работает в моей C исходных файлов

#if defined(DEBUG) 
// not getting here 
#else 
// getting here instead 
#endif 

Какой символ, если таковые будут определены путем установки CMAKE_BUILD_TYPE для отладки?

ответ

2

Найден ответ. Это определенно ловушка для тех, кто использует CMake.

Похоже, что изменение типа сборки в CMakeLists.txt не изменит тип сборки, если вы уже создали его с другим типом сборки. Причина в том, что это кеш.

Видя, как я строю из источника. т. е. у меня есть отдельный каталог Build внутри моего исходного дерева. Я обычно запускаю только «cmake ..»

Так очистка дерева сборки и работа «cmake ..» снова зафиксировала его. Теперь DEBUG в настоящее время определяется для моих исходных файлов, и я могу подтвердить, что с косметическим VERBOSE = 1

Эта ссылка обеспечивает дополнительные подробности и другие варианты:

Understanding why CMAKE_BUILD_TYPE cannot be set

Смежные вопросы