Có khả năng gỡ lỗi CMakeLists.txt
tệp (ít nhất là danh sách các biến) ngoại trừ câu lệnh thông báo không?
Câu trả lời:
Không có debugger tương tác cho CMake, tuy nhiên cũng có những lá cờ -Wdev
, --debug-output
và --trace
đó có thể giúp đỡ. Ngoài ra, hãy nhớ kiểm tra các tệp nhật ký CMakeFiles\CMakeOutput.log
và CMakeFiles\CMakeError.log
chủ yếu thu thập kết quả đầu ra của các quy trình được gọi bởi CMake (ví dụ trong khi kiểm tra sự hiện diện của một loại hoặc tiêu đề).
Kể từ phiên bản 3.7 , CMake hiện chính thức hỗ trợ "chế độ máy chủ" nên việc tích hợp trong IDE có thể sẽ được cải thiện trong tương lai gần. Hỗ trợ ban đầu tồn tại cả trong Qt Creator và Visual Studio 2017 RC
if
câu lệnh trong CmakeList.txt
? came --debug ...
và cmake --debug-output ...
không in chúng. Trong Bash, tương đương là bash -x <cmd>
.
--trace
thường khá rộng (chuyển hướng đầu ra vào một tập tin!)
string(STRIP ...)
đã bị hỏng. Ngoài ra, hãy xem Làm thế nào để loại bỏ dòng mới theo sau trong biến Cmake? . Tôi xin lỗi nếu bạn không biết những gì bash -x
làm.
Bạn có thể thử sử dụng CMake Script Debugger mới được cung cấp bởi công cụ VisualGDB . Nó sử dụng một nhánh mã nguồn mở của CMake hỗ trợ bước qua các tệp CMakeLists.txt, đặt mã / điểm ngắt dữ liệu, đánh giá / thay đổi các biến, v.v.
Có một hướng dẫn chi tiết từng bước về trình gỡ lỗi mới ở đây
Có các Công cụ CMake Daemon của steveire . Bản thân tôi chưa sử dụng chúng, nhưng chúng tuyên bố cung cấp khả năng xem xét nội tâm dường như khá gần với trình gỡ lỗi.
Chỉnh sửa : Bây giờ chúng được gọi là CMake-server và là một phần của CMake 3.7.
Tôi thích sử dụng variable_watch để "gỡ lỗi" các tệp CMakeLists.txt của mình. Chỉ cần đặt ở đầu tập lệnh của tôi:
variable_watch(SOME_MY_VAR)
Ngoài ra, hãy đọc về env var VERBOSE
: https://cmake.org/cmake/help/latest/envvar/VERBOSE.html
Tôi đã sử dụng nó theo cách này:
export VERBOSE=defined
make
và có một số chi tiết hơn.
Trong các trường hợp khác, hãy chỉnh sửa CMakeLists.txt
tệp để bao gồm dòng sau:
set(CMAKE_VERBOSE_MAKEFILE ON)
(Một số bài đăng trên này là https://bytefreaks.net/programming-2/make-building-with-cmake-verbose ).
Ngoài ra, có các cmake
tùy chọn hữu ích kiểm soát đầu ra gỡ lỗi, hãy xem manpage: https://cmake.org/cmake/help/latest/manual/cmake.1.html