Я использую CMake с GNU Make и хотел бы видеть все команды точно (например, как выполняется компилятор, все флаги и т. Д.).
GNU make имеет --debug
, но, похоже, это не очень полезно, есть ли другие варианты? Предоставляет ли CMake дополнительные флаги в сгенерированном Makefile для отладки?
mkdir build; cd build; cmake .. --debug-output; make VERBOSE=1
Ответы:
Когда вы запустите make, добавьте,
VERBOSE=1
чтобы увидеть полный вывод команды. Например:Или вы можете добавить
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON
в команду cmake постоянный подробный вывод команды из сгенерированных Make-файлов.Чтобы уменьшить некоторые, возможно, менее интересные результаты, вы можете использовать следующие параметры. Опция
CMAKE_RULE_MESSAGES=OFF
удаляет строки наподобие [33%] Building C object ... , а--no-print-directory
заставляет make не распечатывать текущий каталог, отфильтровывая строки наподобиеmake[1]: Entering directory
andmake[1]: Leaving directory
.источник
cmake -GNinja . ; ninja -v
очень хороший многословный вывод с минимальным пухом.cmake --build . -- VERBOSE=1
Удобно установить опцию в
CMakeLists.txt
файле как:источник
CMAKE_VERBOSE_MAKEFILE
должно быть отключено по умолчанию и выбор пользователя, если он в этом нуждается, для целей отладки.Или просто экспортируйте переменную среды VERBOSE в оболочку следующим образом:
export VERBOSE=1
источник
Если вы используете CMake GUI, то переключитесь на расширенный вид, а затем этот параметр называется CMAKE_VERBOSE_MAKEFILE.
источник
Я пытался сделать что-то подобное, чтобы убедиться, что
-ggdb
флаг присутствует.Вызовите make в чистую директорию и установите флаг, который вы ищете. Ищу,
debug
а неggdb
просто написать.make VERBOSE=1 | grep debug
-ggdb
Флаг был неясной достаточно , что только команда компиляции выскочила.источник