Там нет интерактивного отладчика для CMake, однако есть и флаги -Wdev, --debug-outputи --traceкоторые могут помочь. Также не забудьте проверить файлы журналов CMakeFiles\CMakeOutput.logи CMakeFiles\CMakeError.logкоторые в основном собирать выходы процессов , вызываемых CMake (например , при проверке на наличие типа или заголовка).
Начиная с версии 3.7 CMake теперь официально поддерживает «серверный режим», поэтому интеграция в IDE, вероятно, улучшится в ближайшем будущем. Первоначальная поддержка существует как в Qt Creator, так и в Visual Studio 2017 RC.
Какой из них мы используем для отладки ifоператоров CmakeList.txt? came --debug ...и cmake --debug-output ...не печатаем их. В Bash эквивалент bash -x <cmd>.
jww
@jww Я не на 100% уверен, что вы пытаетесь отлаживать, но вывод --traceобычно довольно обширный (перенаправьте вывод в файл!)
Джо
Я пытался отладить сценарий и понять, почему не вводятся определенные блоки кода. Но я нашел проблему: string(STRIP ...)сломалась. Также см. Как удалить завершающую новую строку в переменной Cmake? . Приношу свои извинения, если вы не знали, что bash -xделает.
jww
Вы не должны просто упоминать о проверке журналов. Вы должны объяснить, как проверять журналы.
Thomas Jay Rush
@ThomasJayRush Я добавил информацию о местонахождении и содержании файлов журнала. Все остальное зависит от конкретной проблемы.
Джо
7
Вы можете попробовать использовать новый CMake Script Debugger, предоставляемый инструментом VisualGDB . Он использует форк CMake с открытым исходным кодом. который поддерживает пошаговое выполнение файлов CMakeLists.txt, установку точек останова кода / данных, оценку / изменение переменных и т. Д.
Там же подробно шаг за шагом учебник о новом отладчике здесь
Есть инструменты стивейра CMake Daemon Tools . Я сам их не использовал, но они утверждают, что предлагают возможности для самоанализа, которые кажутся довольно близкими к отладчику.
Изменить : теперь они называются CMake-server и являются частью CMake 3.7.
Ответы:
Там нет интерактивного отладчика для CMake, однако есть и флаги
-Wdev
,--debug-output
и--trace
которые могут помочь. Также не забудьте проверить файлы журналовCMakeFiles\CMakeOutput.log
иCMakeFiles\CMakeError.log
которые в основном собирать выходы процессов , вызываемых CMake (например , при проверке на наличие типа или заголовка).Начиная с версии 3.7 CMake теперь официально поддерживает «серверный режим», поэтому интеграция в IDE, вероятно, улучшится в ближайшем будущем. Первоначальная поддержка существует как в Qt Creator, так и в Visual Studio 2017 RC.
источник
if
операторовCmakeList.txt
?came --debug ...
иcmake --debug-output ...
не печатаем их. В Bash эквивалентbash -x <cmd>
.--trace
обычно довольно обширный (перенаправьте вывод в файл!)string(STRIP ...)
сломалась. Также см. Как удалить завершающую новую строку в переменной Cmake? . Приношу свои извинения, если вы не знали, чтоbash -x
делает.Вы можете попробовать использовать новый CMake Script Debugger, предоставляемый инструментом VisualGDB . Он использует форк CMake с открытым исходным кодом. который поддерживает пошаговое выполнение файлов CMakeLists.txt, установку точек останова кода / данных, оценку / изменение переменных и т. Д.
Там же подробно шаг за шагом учебник о новом отладчике здесь
источник
Есть инструменты стивейра CMake Daemon Tools . Я сам их не использовал, но они утверждают, что предлагают возможности для самоанализа, которые кажутся довольно близкими к отладчику.
Изменить : теперь они называются CMake-server и являются частью CMake 3.7.
источник
Мне нравится использовать variable_watch для «отладки» моих файлов CMakeLists.txt. Просто установите поверх моего скрипта:
источник
Также прочтите о env var
VERBOSE
: https://cmake.org/cmake/help/latest/envvar/VERBOSE.htmlЯ использовал это так:
и получил больше многословия.
В других случаях отредактируйте
CMakeLists.txt
файл, включив в него следующую строку:(Некоторые сообщения по этому поводу https://bytefreaks.net/programming-2/make-building-with-cmake-verbose ).
Кроме того, есть полезные
cmake
параметры, управляющие выводом отладки, см. Справочную страницу: https://cmake.org/cmake/help/latest/manual/cmake.1.htmlисточник