Làm cách nào để sử dụng CMake?


102

Tôi đang cố gắng sử dụng CMake để biên dịch opencv.

Tôi đang đọc hướng dẫn nhưng không thể hiểu các tệp CMakeLists là gì và nó được kết nối như thế nào với gui của CMake?

Cũng không thể hiểu được makefiles là gì, chúng có giống nhau là CMakeLists không?

Và cuối cùng thì tập tin nào mà tôi mở bằng visual-studio?


Nếu câu hỏi có liên quan đến Windows, cần được nhắc tới trong đó (có lẽ với một windowsthẻ)
Basile Starynkevitch

Về CMake 3.13.3, nền tảng Windows và IDE Visual Studio 2017, tôi đề xuất: wikihow.com/Use-CMake Regards.
George Theodosiou

Câu trả lời:


30

CMake lấy một tệp CMakeList và xuất nó ra định dạng xây dựng dành riêng cho nền tảng, ví dụ: Makefile, Visual Studio, v.v.

Trước tiên, bạn chạy CMake trên CMakeList. Nếu bạn đang sử dụng Visual Studio, bạn có thể tải dự án / giải pháp đầu ra.


2
Makefile là gì? Tôi tìm tệp dự án / giải pháp cho visualstudio ở đâu?
lital maatuk

3
Sau khi bạn chạy cmake (hoặc CMakeSetup và nhấn tạo), bạn sẽ có thể tìm thấy tệp Makefile (nếu unix) hoặc tệp dự án ở đâu đó trong cây dự án. Vị trí có thể được chỉ định trong CMakeList. Đây là một bản trình bày ngắn mà tôi tìm thấy trên CMake wiki mà bạn có thể thấy hữu ích: elpauer.org/stuff/learning_cmake.pdf
holtavolt 22/10/11

2
CMake định cấu hình toàn bộ dự án bằng cách sử dụng định dạng bản dựng mà bạn chọn, có nghĩa là nó thiết lập mọi thứ để bạn có thể sử dụng, chẳng hạn như Visual Studio để biên dịch. Theo mặc định (ít nhất là trên linux), nó tạo một dự án sử dụng Make thay thế. Make được sử dụng để thực sự xây dựng dự án, không phải cấu hình hoặc thiết lập nó. Vì vậy, trước tiên bạn phải sử dụng CMake để thiết lập dự án, sau đó chạy Make để biên dịch và xây dựng nội dung.
leinaD_natipaC

156

Tôi không biết về Windows (chưa bao giờ sử dụng nó), nhưng trên hệ thống Linux, bạn chỉ cần tạo một thư mục xây dựng (trong thư mục nguồn trên cùng)

mkdir build-dir

đi vào bên trong nó

cd build-dir

sau đó chạy cmakevà trỏ đến thư mục mẹ

cmake ..

và cuối cùng chạy make

make

Lưu ý rằng makecmakelà các chương trình khác nhau. cmakelà một trình Makefiletạo và maketiện ích được điều chỉnh bởi một Makefiletệp văn bản. Xem cmake & tạo các trang wikipedia.

NB: Trên Windows, cmakecó thể hoạt động nên có thể cần được sử dụng theo cách khác. Bạn sẽ cần đọc tài liệu (giống như tôi đã làm cho Linux)


Sự khác biệt giữa cmake và make là gì? chúng là những chương trình khác nhau?
lital maatuk 22/10/11

4
Câu trả lời chính xác; Tôi không thể tìm ra cách lấy các tệp bản dựng trong một thư mục con. Tôi không hiểu tại sao tài liệu chính thức không đề cập đến điều này.
TheBigB

Điều này hoạt động trên Linux, nhưng trên Windows, nó bị hỏng khi phát hiện trình biên dịch C / C ++. Bất kỳ ý tưởng làm thế nào để làm điều đó?
bartlomiej.n

Nó phụ thuộc vào cách bạn thiết lập máy tính cụ thể . Kiểm tra xem PATHbiến của bạn có đúng không. BTW, tôi không bao giờ sử dụng Windows trong cuộc sống của tôi (và viết chương trình đầu tiên của tôi vào năm 1974)
Basile Starynkevitch

2
Rất nhiều ủng hộ và câu trả lời không nói gì về Visual Studio.
Abyx

10

Có, cmakemake là các chương trình khác nhau. cmakelà (trên Linux) một trình tạo Makefile (và Makefile -s là các tệp điều khiển maketiện ích). Có các trình tạo Makefile khác (cụ thể là cấu hình và autoconf, v.v.). Và bạn có thể tìm thấy các chương trình tự động hóa xây dựng khác (ví dụ như ninja ).


Tôi nghĩ rằng điều này là một chút khó hiểu. cmake là một trình tạo hệ thống xây dựng và một trong những thứ mà nó có thể tạo là các tệp makefiles (như trong gnu.org/software/make ). Tuy nhiên, có nhiều hệ thống khác mà nó có thể tạo ra và chúng không phải là "trình tạo Makefile". Trên macos (và có thể ở mọi nơi khác), nếu bạn chạy cmake --help, nó sẽ cung cấp cho bạn một danh sách dài các trình tạo mà nó có. Ví dụ: cmake có thể tạo các dự án Xcode - không liên quan gì đến make.
James Moore

0

Về CMake 3.13.3, nền tảng Windows và IDE Visual Studio 2017, tôi đề xuất hướng dẫn này . Tóm lại, tôi đề nghị:
1. Tải xuống cmake> giải nén nó> thực thi nó.
2. Như ví dụ tải xuống GLFW> giải nén nó> tạo bên trong thư mục Build .
3. Trong cmake Duyệt "Nguồn"> Duyệt "Xây dựng"> Định cấu hình và Tạo.
4. Trong Visual Studio 2017, Xây dựng Giải pháp của bạn.
5. Lấy mã nhị phân.
Trân trọng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.