Với CMake, thông thường nên thực hiện xây dựng "ngoài nguồn" . Tạo của bạn CMakeLists.txt
trong thư mục gốc của dự án của bạn. Sau đó, từ gốc của dự án của bạn:
mkdir Release
cd Release
cmake -DCMAKE_BUILD_TYPE=Release ..
make
Và cho Debug
(một lần nữa từ gốc của dự án của bạn):
mkdir Debug
cd Debug
cmake -DCMAKE_BUILD_TYPE=Debug ..
make
Release
/ Debug
sẽ thêm các cờ thích hợp cho trình biên dịch của bạn. Ngoài ra còn có RelWithDebInfo
và MinSizeRel
xây dựng cấu hình.
Bạn có thể sửa đổi / thêm vào các cờ bằng cách chỉ định tệp toolchain mà bạn có thể thêm CMAKE_C_FLAGS_DEBUG
và CMAKE_C_FLAGS_RELEASE
các biến, ví dụ:
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
Xem CMAKE_BUILD_TYPE để biết thêm chi tiết.
Đối với câu hỏi thứ ba của bạn, tôi không chắc chính xác những gì bạn đang hỏi. CMake sẽ tự động phát hiện và sử dụng trình biên dịch phù hợp cho các tệp nguồn khác nhau của bạn.
cmake -i ..
thay thế, vì vậy cmake sẽ chạy tương tác, hỏi bạn loại xây dựng nào bạn muốn (Không có, Phát hành, Gỡ lỗi, MinSizeRel, RelWithDebInfo).