Як налагодити файли CMakeLists.txt?


Відповіді:


62

Для 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

Не слід просто згадувати перевірку журналів. Ви повинні пояснити, як слід перевіряти журнали.
Томас Джей Раш

@ThomasJayRush Я додав інформацію про розташування та вміст файлів журналів. Все, що поза цим, залежить від конкретної проблеми.
Джо

7

Ви можете спробувати використати новий налагоджувач сценаріїв CMake, наданий інструментом VisualGDB . Він використовує форк CMake з відкритим кодом, який підтримує перехід через файли CMakeLists.txt, встановлення точок зупинки коду / даних, оцінку / зміну змінних тощо

Там же докладно крок за кроком підручник про новий отладчике тут


5

Існують інструменти CMake Daemon Steveire . Я сам ними не користувався, але вони стверджують, що вони пропонують можливості для самоаналізу, які здаються досить близькими до налагоджувача.

Редагувати : Вони тепер називаються CMake-сервером і є частиною CMake 3.7.



2

Також прочитайте про env var VERBOSE: https://cmake.org/cmake/help/latest/envvar/VERBOSE.html

Я використав це таким чином:

export VERBOSE=defined
make

і отримав ще кілька деталей.

В інших випадках редагуйте CMakeLists.txt файл, щоб включити такий рядок:

set(CMAKE_VERBOSE_MAKEFILE ON)

(Деякий допис про це https://bytefreaks.net/programming-2/make-building-with-cmake-verbose ).

Крім того, є корисні cmakeопції, що керують виведенням налагодження, див. Сторінку: https://cmake.org/cmake/help/latest/manual/cmake.1.html

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.