[cmake] CMakeLists.txt 파일을 어떻게 디버깅합니까?

메시지 문을 CMakeLists.txt제외하고 파일 (최소한 변수 목록) 을 디버그 할 수 있습니까?



답변

CMake에 대한 대화 형 디버거 그러나 또한 플래그가 없다 -Wdev, --debug-output그리고 --trace어떤 힘 도움이됩니다. 또한 로그 파일 확인 기억 CMakeFiles\CMakeOutput.log하고 CMakeFiles\CMakeError.log(A 형 또는 헤더의 존재를 확인하는 동안, 예를 들어) CMake 호출 프로세스 주로 수집 출력.

버전 3.7 부터 CMake는 이제 공식적으로 “서버 모드”를 지원하므로 가까운 장래에 IDE 통합이 개선 될 것입니다. 초기 지원은 Qt CreatorVisual Studio 2017 RC 모두에 있습니다.


답변

VisualGDB 도구에서 제공하는 새로운 CMake 스크립트 디버거를 사용해 볼 수 있습니다 . CMakeLists.txt 파일을 통한 단계별 실행, 코드 / 데이터 중단 점 설정, 변수 평가 / 변경 등을 지원 하는 CMake오픈 소스 포크를 사용합니다 .

여기에 새 디버거에 대한 자세한 단계별 자습서가 있습니다.


답변

steveire의 CMake Daemon Tools가 있습니다. 나는 그것들을 직접 사용하지는 않았지만 그들은 디버거에 매우 가까운 것처럼 보이는 내성을위한 가능성을 제공한다고 주장한다.

편집 : 이제 CMake-server 라고 하며 CMake 3.7의 일부입니다.


답변

CMakeLists.txt 파일을 “디버그” 하기 위해 variable_watch 를 사용하고 싶습니다 . 내 스크립트 상단에 설정하십시오.

variable_watch(SOME_MY_VAR)


답변

또한 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을 참조하십시오.


답변