Như baysmith cho biết, nếu mục tiêu của bạn là giữ cho thư mục nguồn của bạn luôn sạch sẽ, giải pháp thực sự là sử dụng tính năng xây dựng "out-of-source" của CMake. Nếu bạn đang sử dụng Windows, hãy đặt "Nơi xây dựng tệp nhị phân" vào một thư mục mới, khác với thư mục "Mã nguồn" ở đâu. Nếu bạn đang sử dụng Unix, nó sẽ giống như sau:
cd <source directory>
mkdir build
cd build
cmake ..
make
Bằng cách chạy CMake trên một thư mục khác, tất cả các tệp sẽ được chuyển vào thư mục đó và nguồn của bạn sẽ luôn sạch sẽ. (Lưu ý: thư mục xây dựng không phải nằm trong thư mục nguồn. Hãy xem CMake wiki để biết thêm chi tiết.)
Nếu "ngoài nguồn" không hoạt động cho bạn, tôi có thể tìm thấy tùy chọn khác. Dựa trên những gì tôi có thể nói từ tập tin Qt4Macros.cmake
được cài đặt với CMake 2.8 của tôi, nó không thể truy cập như một tham số cấu hình. Đây là dòng có liên quan:
SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_current_MOC})
Cách giải quyết là để thay đổi tất cả MOC của bạn bao gồm các chỉ thị để xác định thư mục mà bạn muốn xây dựng để.
#include "moc/mainwindow.moc"
Sau khi tạo thư mục moc
bên trong thư mục build của tôi, không có xây dựng vấn đề, và tập tin MOC của tôi là trong thư mục mới.
Nguồn
2011-08-21 02:45:24
Nói chung, bạn sử dụng công cụ xây dựng ngoài cây để giữ cho nguồn của bạn luôn sạch sẽ. Xem http://www.vtk.org/Wiki/CMake_FAQ#Out-of-source_build_trees – baysmith