Có CMAKE_BUILD_TYPE=Release
ngầm ngụ ý -DNDEBUG
?CMAKE_BUILD_TYPE = Phát hành ngụ ý -DNDEBUG?
Nếu không: không phải là hợp lý để mong đợi rằng hàm ý này diễn ra?
Tôi muốn biết nếu sau CMake code đang dư thừa trong tôi CMakeLists.txt:
if (NOT CMAKE_BUILD_TYPE MATCHES Debug)
add_definitions(-DNDEBUG)
endif()
Tôi đã kiểm tra và hiểu rằng * CMake * gắn thêm cờ '-DNDEBUG', nhưng vẫn có vấn đề vì [Tài liệu CMake] (https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE. html) không ** không ** đề cập rõ ràng nếu cờ '-DNDEBUG' được thêm khi tùy chọn' CMAKE_BUILD_TYPE = Debug' xuất hiện. Tôi thích tránh viết mã dựa trên hành vi không có giấy tờ vì nó có thể thay đổi trong các phiên bản CMake trong tương lai (mặc dù hậu quả tiềm năng sẽ nhỏ). –
Ý của bạn là = trong tiêu đề? Tôi chắc chắn sẽ mong đợi gỡ lỗi xây dựng để ** KHÔNG ** xác định 'NDEBUG'. – immibis
@immibis - cảm ơn. Tất nhiên đó là một lỗi đánh máy. Tôi đã chỉnh sửa câu hỏi của mình. +1 –