메시지 문을 CMakeLists.txt
제외하고 파일 (최소한 변수 목록) 을 디버그 할 수 있습니까?
답변:
CMake에 대한 대화 형 디버거 그러나 또한 플래그가 없다 -Wdev
, --debug-output
그리고 --trace
어떤 힘 도움이됩니다. 또한 로그 파일 확인 기억 CMakeFiles\CMakeOutput.log
하고 CMakeFiles\CMakeError.log
(A 형 또는 헤더의 존재를 확인하는 동안, 예를 들어) 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
.
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을 참조하십시오.