Tôi chỉ muốn gỡ lỗi một số mã chạy trên Linux và tôi cần một bản dựng gỡ lỗi (-O0 -ggdb
). Vì vậy, tôi thêm vào những điều này để tôi CMakeLists.txt
:cmake CFLAGS CXXFLAGS sửa đổi
set(CMAKE_BUILD_TYPE DEBUG)
set(CMAKE_C_FLAGS "-O0 -ggdb")
set(CMAKE_C_FLAGS_DEBUG "-O0 -ggdb")
set(CMAKE_C_FLAGS_RELEASE "-O0 -ggdb")
set(CMAKE_CXX_FLAGS "-O0 -ggdb")
set(CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
set(CMAKE_CXX_FLAGS_RELEASE "-O0 -ggdb")
Khi tôi cố gắng biên dịch Tôi quay tiết về việc sử dụng make VERBOSE=1
Và tôi quan sát thấy đầu ra, như thế này
... /usr/bin/c++ -D_BSD_SOURCE **-O0 -ggdb** -Wnon-virtual-dtor
-Wno-long-long -ansi -Wundef -Wcast-align -Wchar-subscripts -Wall -W
-Wpointer-arith -Wformat-security -fno-exceptions -DQT_NO_EXCEPTIONS
-fno-check-new -fno-common -Woverloaded-virtual -fno-threadsafe-statics
-fvisibility=hidden -fvisibility-inlines-hidden **-g -O2**
-fno-reorder-blocks -fno-schedule-insns -fno-inline ...
Rõ ràng mã được biên dịch với "-g -O2"
và đây không phải là điều tôi muốn. Làm thế nào tôi có thể buộc nó chỉ sử dụng "-O0 -ggdb"
?
Nếu bạn muốn xây dựng có thể gỡ lỗi, chỉ cần thực hiện gỡ lỗi cấu hình tại dòng lệnh. "cmake -DCMAKE_BUILD_TYPE = Gỡ lỗi". Kết quả xây dựng sẽ có các cờ gỡ lỗi trên cho hệ thống xây dựng đã cho. Không có lý do để sửa đổi các tập tin cmake chính nó. Bạn cũng có thể gửi giá trị CMAKE_C_FLAGS với đối số -D khác. – Atifm