Gần trên đây tôi tất cả dịp chạm vào CMake, đề nghị sự hiểu biết một chút ít về nó. Hy vọng hữu ích mang lại anh em.

Bạn đang xem: Cmake là gì

Nó cung cấp chức năng hình thành Maketệp tin một phương pháp tác dụng. Nhất là đối với các dự án phức tạp. Nó cũng cung ứng thêm những cỗ sinc khác nhằm sinh kết cấu cai quản source cho các IDE khác nhau nhỏng Project mang đến Visual Studio, etc.Trong số lượng giới hạn, tôi vẫn nói về việc áp dụng CMake để build một simple project bên trên Linux.

Ta vẫn luân phiên xung quanh ví dụ kinh khủng là chế tạo ra lịch trình Hello World, tuy nhiên trải đời hiển thị câu đó bên trên ít nhất 3 ngôn ngữ. ja,en,vi. Chương thơm trình đang viết bằng ngôn ngữ C.

(Link tmê say khảo)

lấy ví dụ như được triển khai trong tlỗi mục /home/oedev/Code/CMake

Nội dung thiết yếu bao gồm các phần sau,

Chương thơm trình Hello World mang lại En.Thêm ngữ điệu Ja, Vi vào công tác trên.Thêm ngữ điệu Spain(Es) trong một trường hợp khác.

============================================================

1.Chương thơm trình Hello World mang đến En

Ta sẽ sở hữu file source nlỗi sau:maintiện ích.c

#include//// Greeting message in En//void greeting_en()printf("Hello world n");//// Main functions//int main(int argc, char* argv<>)greeting_en();return 0;File thực hiện mang đến CMake là một trong tệp tin CMakeLists.txt.Nó sẽ sở hữu được nội dung như sau:

## Điều kiện về version tối tphát âm nhằm phát âm được tệp tin CMakeList.txt này.#cmake_minimum_required(VERSION 2.8.12)## Tên project thường xuyên đã là tên gọi tệp tin chạy#project (helloworld)## Định nghĩa mọt liên quan thân tệp tin chạy và tệp tin nguồn#add_executable(hellworld mainứng dụng.c)Đặt cả 2 file trên vào thuộc 1 tlỗi mục:Nội dung được khám nghiệm bởi lệnh tree nhỏng sau

CMake├── CMakeLists.txt└── mainphầm mềm.cFile CMakeList.txt chính là file có mang source thực hiện ngữ điệu nhưng CMake phát âm được.Đến đây, ta triển khai các bước chính của CMake. Đó là có mặt Makefiles mang đến project đơn giản dễ dàng này. Ta yêu cầu chuyển vào bên phía trong thư mục CMake trước khi chạy lệnh dưới đây:

$ cmake .Dấu . phía đằng sau khôn xiết đặc biệt. Đó là mặt đường dân cho thỏng mục không tệp tin CMakeList.txt hay rất có thể thế nó bằng $(PWD) vào trường vừa lòng này.Nội dung chạy xong đề xuất như vậy này:

oedev
OECrossDev:~/Code/CMake$ cmake .-- The C compiler identification is GNU 4.8.2-- The CXX compiler identification is GNU 4.8.2-- Chechồng for working C compiler: /usr/bin/cc-- Cheông xã for working C compiler: /usr/bin/cc -- works-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working CXX compiler: /usr/bin/c++-- Chechồng for working CXX compiler: /usr/bin/c++ -- works-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Configuring done-- Generating done-- Build files have been written to: /home/oedev/Code/CMakeNội dung tlỗi mục sau thời điểm chạy lệnh trên:

oedev
OECrossDev:~/Code/CMake$ tree -L 2.├── CMakeCabít.txt├── CMakeFiles│ ├── 2.8.12.2│ ├── cmake.check_cache│ ├── CMakeDirectoryInformation.cmake│ ├── CMakeđầu ra.log│ ├── CMakeTmp│ ├── hellworld.dir│ ├── Makefile2│ ├── Maketệp tin.cmake│ ├── progress.marks│ └── TargetDirectories.txt├── cmake_install.cmake├── CMakeLists.txt├── mainphầm mềm.c└── MakefileNlỗi ta thấy, có khá nhiều file với thư mục được tạo thành khi ta chạy CMake. Nhưng trong giới hạn bài này ta chỉ quan tâm mang đến Makefile thôi.Ta cũng thấy rằng lịch trình chưa được build, tốt nói theo cách khác CMake chỉ có tác dụng nhiệm vụ của nó mang lại phía trên thôi. Tức là hình thành Makefile , rồi ngủ.

Giờ ý muốn build project ta vừa sinh sản lúc đầu (chỉ có một file .c), ta đã chạy Makefiles thôi.

oedev
OECrossDev:~/Code/CMake$ makeScanning dependencies of target hellworld<100%> Building C object CMakeFiles/hellworld.dir/mainứng dụng.c.oLinking C executable hellworld<100%> Built target hellworldKết quả chiếm được nhỏng sau

oedev
OECrossDev:~/Code/CMake$ lsCMakeCabít.txt CMakeFiles cmake_install.cmake CMakeLists.txt hellworld mainứng dụng.c MakefileTa đã thây tệp tin helloword được có mặt, trên đây chính là file chạy:

oedev
OECrossDev:~/Code/CMake$ ./hellworldHello worldGiờ ta vẫn thêm lời xin chào bằng ngữ điệu Ja, Vi vào lịch trình trên.

2.Thêm ngôn ngữ Ja, Vi vào công tác trên.

Ta đã tổ chức triển khai lại source nhỏng sau:

oedev
OECrossDev:~/Code/CMake$ tree.├── CMakeLists.txt├── include│ ├── greetings_en.h│ ├── greetings_ja.h│ └── greetings_vi.h└── src ├── greetings_en.c ├── greetings_ja.c ├── greetings_vi.c └── maintiện ích.cDo cấu tạo thỏng mục đã chuyển đổi, địa chỉ những tệp tin mối cung cấp cũng như vậy.Ta phải chuyển đổi tệp tin CMakeList.txt nhằm tương xứng cùng với chuyển đổi này.Nội dung tệp tin này đã thành nhỏng sau:

*CMakeList.txt*## Điều kiện về version#cmake_minimum_required(VERSION 2.8.12)## Tên project#project (helloworld)## Knhị bảo thỏng mục chứa file header (.h)#include_directories(include)## Thêm trường đoản cú tệp tin mối cung cấp bằng lệnh *set*#set(SOURCES src/mainphầm mềm.c src/greetings_en.c src/greetings_ja.c src/greetings_vi.c)## Thêm một tập các file bởi một cỗ lọc vào tlỗi mục chưa source# Đây là biện pháp nhanh hao và thông dụng rộng.##file(GLOB SOURCES "src/*.c")## Định nghĩa sự tương quan giữa file chạy cùng những tệp tin nguồn.#add_executable(hellworld $SOURCES)Ta sẽ chạy cmake nhằm sinc Makefiles cùng build công tác cùng với Makefiles coi hiệu quả nỗ lực nào:Với các áp dụng hàm set:Chạy cmake

oedev
OECrossDev:~/Code/CMake$ cmake .-- The C compiler identification is GNU 4.8.2-- The CXX compiler identification is GNU 4.8.2-- Cheông chồng for working C compiler: /usr/bin/cc-- Check for working C compiler: /usr/bin/cc -- works-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Cheông xã for working CXX compiler: /usr/bin/c++-- Check for working CXX compiler: /usr/bin/c++ -- works-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Configuring done-- Generating done-- Build files have sầu been written to: /home/oedev/Code/CMakeChạy Make

oedev
OECrossDev:~/Code/CMake$ makeScanning dependencies of target hellworld< 25%> Building C object CMakeFiles/hellworld.dir/src/mainphầm mềm.c.o< 50%> Building C object CMakeFiles/hellworld.dir/src/greetings_en.c.o< 75%> Building C object CMakeFiles/hellworld.dir/src/greetings_ja.c.o<100%> Building C object CMakeFiles/hellworld.dir/src/greetings_vi.c.oLinking C executable hellworld<100%> Built target hellworldKiểm tra thỏng mục

oedev
OECrossDev:~/Code/CMake$ tree -L 2.├── CMakeCabít.txt├── CMakeFiles│ ├── 2.8.12.2│ ├── cmake.check_cache│ ├── CMakeDirectoryInformation.cmake│ ├── CMakeOutput.log│ ├── CMakeTmp│ ├── hellworld.dir│ ├── Makefile2│ ├── Maketệp tin.cmake│ ├── progress.marks│ └── TargetDirectories.txt├── cmake_install.cmake├── CMakeLists.txt├── hellworld├── include│ ├── greetings_en.h│ ├── greetings_ja.h│ └── greetings_vi.h├── Makefile└── src ├── greetings_en.c ├── greetings_ja.c ├── greetings_vi.c └── mainapp.cKết trái chạy chương trình

oedev
OECrossDev:~/Code/CMake$ ./hellworldHello worldKonichiwa!!!Xin chao !!!!lúc nỗ lực set commvà bằng command file (GLOB) thì đến tác dụng gần như đồng nhất nhau.

2.1 Tạo thư mục để build riêng

À, bao gồm một điểm cần nói tại chỗ này, vừa ta gồm thấy không ít tệp tin (kế bên Makefile) được xuất hiện vào quá trình cmake chạy.Nếu nhằm những tệp tin kia chung cùng với tlỗi mục những tệp tin source, header ta vừa sinh sản đã gây ra trắc trở, khó thống trị. Ta sẽ tống những file đó vào 1 thư mục, hotline là thư mục build.Cấu trúc tlỗi mục đã thay đổi như sau:

oedev
OECrossDev:~/Code/CMake$ tree.├── build├── CMakeLists.txt├── include│ ├── greetings_en.h│ ├── greetings_ja.h│ └── greetings_vi.h└── src ├── greetings_en.c ├── greetings_ja.c ├── greetings_vi.c └── mainphầm mềm.cGiờ ta đang thực hiện toàn bộ quá trình cmake với make phía bên trong tlỗi mục build

oedev
OECrossDev:~/Code/CMake/build$ cmake ..-- The C compiler identification is GNU 4.8.2-- The CXX compiler identification is GNU 4.8.2-- Check for working C compiler: /usr/bin/cc-- Cheông chồng for working C compiler: /usr/bin/cc -- works-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Check for working CXX compiler: /usr/bin/c++-- Chechồng for working CXX compiler: /usr/bin/c++ -- works-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Configuring done-- Generating done-- Build files have sầu been written to: /home/oedev/Code/CMake/buildTa thực hiện .. cầm cố vì .

Xem thêm: Tổng Hợp Fresh Staff Là Gì, Hành Trình Trở Thành Kỹ Sư Của Samsung Việt Nam

như ở những câu lệnh trước, vì ta vẫn chuyển vào tlỗi mục ./build nên tệp tin CMakeList.txt sinh sống thỏng mục phụ vương của tlỗi mục này. Ta buộc phải nói mang đến cmake biết điều này.Tiếp tục chạy lệnh make, ta sẽ sở hữu văn bản thư mục CMake sẽ như sau:

oedev
OECrossDev:~/Code/CMake$ tree -L 3.├── build│ ├── CMakeCađậy.txt│ ├── CMakeFiles│ │ ├── 2.8.12.2│ │ ├── cmake.check_cache│ │ ├── CMakeDirectoryInformation.cmake│ │ ├── CMakeđầu ra.log│ │ ├── CMakeTmp│ │ ├── hellworld.dir│ │ ├── Makefile2│ │ ├── Maketệp tin.cmake│ │ ├── progress.marks│ │ └── TargetDirectories.txt│ ├── cmake_install.cmake│ ├── hellworld│ └── Makefile├── CMakeLists.txt├── include│ ├── greetings_en.h│ ├── greetings_ja.h│ └── greetings_vi.h└── src ├── greetings_en.c ├── greetings_ja.c ├── greetings_vi.c └── mainứng dụng.cNhư ta thấy, toàn cục câu chữ của quá trình chạy cmake cùng make được duy trì vào thỏng mục ./build, phần đinc nghĩa source code bên ngoài không trở nên tác động gì hết.Để chạy chương trình, ta nên vào tlỗi mục ./buildKết trái vẫn luôn là :

oedev
OECrossDev:~/Code/CMake/build$ ./hellworld Hello worldKonichiwa!!!Xin chao !!!!3. Thêm ngôn ngữ Spain(es) vào một tình huống khácTình huống khác ngơi nghỉ đó là gì? Tôi muốn kể tới tình huống nlỗi sau:Giả sử ta bao gồm một thư viện chứa lời kính chào mang đến 3 ngôn từ En, Ja, Vi.Ta nên thêm ngữ điệu Es để sở hữu một chương trình cùng với loại kính chào của 4 ngôn ngữ En, Ja, Vi, Es.

Trước không còn, ta buộc phải phát âm thư viện như thế nào? Trong C/C++ nhằm áp dụng lại được mã nguồn hoặc nhằm bảo đảm mã mối cung cấp. Người ta thường build số đông mã nguồn mong mỏi sử dụng lại hoặc gửi cho những người khác thành các thư viện. Về mặt tệp tin ta thấy được, tlỗi viện sẽ sở hữu được 2 loại: thư viện tĩnh(.a) với thỏng viện động(.so).Các hàm ta sẽ viết vào file .c vẫn ở trong số file thỏng viện này.

Nếu thỏng viện chỉ tất cả vắt thôi thì không đầy đủ, ta nên biết thỏng viện đó cung cấp gì mang lại phía bên ngoài hoàn toàn có thể thực hiện được. cũng có thể là thay đổi tổng thể, hoàn toàn có thể là hàm.

Các hàm và biến đổi này phải để nơi nào đó trong các file header . Rồi Lúc build cùng với source cơ mà ta viết, trình biên dịch đang biết phương pháp compile hoặc link cho thích hợp.File header thường xuyên được cung cấp kèm theo những tệp tin .a(.so). Nếu không tồn tại, thì cần tài giỏi liệu biểu lộ.Có cả tư liệu và file header là vấn đề lphát minh tốt nhất.

Giả định rằng, ta bao gồm thỏng viện chưa cách xử trí hiển thị 3 loại xin chào En, Ja, Vi. Nhưng ta chỉ tất cả tệp tin header biểu lộ prototype của các hàm cơ mà không thấy được source của chính nó.

3.1 Build tlỗi viện tĩnh

Kết trái của đoạn này sẽ là file thỏng viện greetings_en_ja_vi.a cùng 3 file header kèm theo.Sau kia ta rất có thể xóa 3 tệp tin source(.c) đi được.Về cấu trúc tệp tin, vị tlỗi viện không chứa hàm main() được, ta yêu cầu quăng quật tệp tin maintiện ích.c đi.Nhớ nhé, thư viện thì chỉ việc tệp tin header thôi là sử dụng được rồi.Thỏng viện chủng loại mực sẽ không cần mang đến xem code, ta chỉ cần coi diễn tả API hoặc file header là rất có thể cần sử dụng được rồi.Cấu trúc file bắt đầu sẽ như vậy này:

oedev
OECrossDev:~/Code/CMake$ tree -L 2.├── CMakeLists.txt├── include│ ├── greetings_en.h│ ├── greetings_ja.h│ └── greetings_vi.h└── src ├── greetings_en.c ├── greetings_ja.c └── greetings_vi.cGiờ, ta cần sửa lại tệp tin CMakeList.txt, nó đang thành như sau:CMakeList.txt

## Điều kiện phiên phiên bản nhỏ tốt nhất của CMake#cmake_minimum_required(VERSION 2.8.12)## Tên project#project (multilang_greetings)## Thêm tlỗi mục chứa các file header (.h)#include_directories(include)## Thêm một tập các file source#file(GLOB SOURCES "src/*.c")## Thỏng viện bao hàm phần đông source nào.# Loại tlỗi viện là STATIC (tĩnh)# Tên tlỗi viện hoàn toàn có thể khác thương hiệu *project*#add_library(greetings_enjavi STATIC $SOURCES)Chạy tiếp cmakemake vào thỏng mục build:Ta sẽ được hiệu quả nhỏng sau:Chạy Cmake, kết quả gần như không biến đổi so với trước:

oedev
OECrossDev:~/Code/CMake/build$ cmake ..-- The C compiler identification is GNU 4.8.2-- The CXX compiler identification is GNU 4.8.2-- Cheông xã for working C compiler: /usr/bin/cc-- Check for working C compiler: /usr/bin/cc -- works-- Detecting C compiler ABI info-- Detecting C compiler ABI info - done-- Cheông chồng for working CXX compiler: /usr/bin/c++-- Cheông xã for working CXX compiler: /usr/bin/c++ -- works-- Detecting CXX compiler ABI info-- Detecting CXX compiler ABI info - done-- Configuring done-- Generating done-- Build files have been written to: /home/oedev/Code/CMake/builChạy make:

oedev
OECrossDev:~/Code/CMake/build$ makeScanning dependencies of target greetings_enjavi< 33%> Building C object CMakeFiles/greetings_enjavi.dir/src/greetings_vi.c.o< 66%> Building C object CMakeFiles/greetings_enjavi.dir/src/greetings_ja.c.o<100%> Building C object CMakeFiles/greetings_enjavi.dir/src/greetings_en.c.oLinking C static library libgreetings_enjavi.a<100%> Built target greetings_enjaviTa thấy rằng tên thư viện ra đời là libgreetings_enjavi.a, những điều đó chi phí tố lib được chế tạo thương hiệu tlỗi viện ta đã knhì báo cùng với add_library vào file CMakeList.txt.Ta rất có thể kiểm soát xem thư viện này chứa vật gì, bằng câu lệnh ar

oedev
OECrossDev:~/Code/CMake/build$ ar -t libgreetings_enjavi.agreetings_vi.c.ogreetings_ja.c.ogreetings_en.c.oTa đã thấy không có tệp tin chạy như thế nào được xuất hiện trong tlỗi mục build. Đúng suôn sẻ, ta đề nghị build thư viện.Ta cũng chất vấn size file này:

oedev
OECrossDev:~/Code/CMake/build$ ls -lh libgreetings_enjavi.a -rw-rw-r-- 1 oedev oedev *4.9K* 8月 17 23:13 libgreetings_enjavi.aĐó là 4.9K (dung lượng NET), bám trên đĩa Chắn chắn nên rộng.

3.2 Build tlỗi viện động

Ta vẫn build thư viện tĩnh, được file .a (một tệp tin nén chưa 3 file .o). Kích thước 4.9K(NET)Giờ ra build thư viện đụng.Vậy động cùng với tĩnh không giống nhau sinh sống ở đâu, tại sao bắt buộc build cả đụng làm gì.Cthị xã hơi nhiều năm, tôi sẽ trình bày ngắn gọn. Thỏng viện tĩnh, có nghĩa là toàn bộ xử lý của phần lớn hàm gần như bên trong thư viện đó rồi. lấy một ví dụ, nó hotline hàm printf trong source .c, thì Khi chế tạo ra thư viện tĩnh, nó ôm tổng thể xử lý của printf vào vào file .a nhưng mà ta vừa tạo nên.Còn tlỗi viện hễ, thì ko làm thay, nó gìn giữ công bố báo là, chỗ này call hàm printf với những tđắm say số x,y,z nào đấy. lúc làm sao chạy thì hỏi tiếp coi hàm đó ở đâu, xử trí ráng làm sao rồi bắt đầu truyền những tsi số nhằm giải pháp xử lý.

Cấu trúc các tệp tin source, header ko chuyển đổi gì đối với Khi build thư viện tĩnh.Ta yêu cầu thay đổi tệp tin CMakeList.txt một chút:Nó sẽ có văn bản như thế này:

## Điều khiếu nại phiên bản nhỏ tuổi độc nhất vô nhị của CMake#cmake_minimum_required(VERSION 2.8.12)## Tên project#project (multilang_greetings)## Thêm thư mục đựng những tệp tin header (.h)#include_directories(include)## Thêm một tập các file source#file(GLOB SOURCES "src/*.c")## Thư viện bao hàm phần lớn source nào.# Loại tlỗi viện là SHARED(động, thực ra không tiếp giáp nghĩa mang đến lắm)# Tên thư viện rất có thể không giống thương hiệu *project*#add_library(greetings_enjavi SHARED $SOURCES)Kết trái của Khi chạy CMake là ko biến đổi gì, còn khi chạy make, nó đang như vậy này:

oedev
OECrossDev:~/Code/CMake/build$ makeScanning dependencies of target greetings_enjavi< 33%> Building C object CMakeFiles/greetings_enjavi.dir/src/greetings_vi.c.o< 66%> Building C object CMakeFiles/greetings_enjavi.dir/src/greetings_ja.c.o<100%> Building C object CMakeFiles/greetings_enjavi.dir/src/greetings_en.c.oLinking C shared library libgreetings_enjavi.so<100%> Built target greetings_enjaviThỏng viện được ra đời là libgreetings_enjavi.so, cũng ban đầu với tiền tố lib, nhưng phần mở rộng là .so.Với tlỗi viện động, ta đang bình chọn văn bản nhỏng sau:

oedev
OECrossDev:~/Code/CMake/build$ ldd libgreetings_enjavi.so linux-vdso.so.1 => (0x00007fff3e7fc000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f6cf04e7000) /lib64/ld-linux-x86-64.so.2 (0x00007f6cf0acd000)Thực ra tôi cũng thiếu hiểu biết kĩ mấy dòng này, tốt nhất có thể không giải thích gì. ;))

3.3 Thêm ngữ điệu Es

Giờ ta sẽ gồm vào tay khôn cùng tlỗi viện với 2 phiên phiên bản, tĩnh với rượu cồn.Ta đang viết code sử dụng bọn chúng, đồng thời thêm chức năng lời chào bởi tiếng Spain nữa.

Với tlỗi viện tĩnhGần nlỗi cực kỳ như là thỏng viện cồn, chỉ khác thương hiệu tệp tin thư viện thôi.Ta chỉ việc vậy libgreetings_enjavi.so vào tệp tin CMakeList.txt ở trong phần dưới bởi libgreetings_enjavi.a, ta đang build tại phần trên thôi.

Với thỏng viện độngCấu trúc tlỗi mục đã nlỗi sau:

oedev
OECrossDev:~/Code/CMake$ tree -L 2.├── build├── CMakeLists.txt├── include│ ├── greetings_en.h│ ├── greetings_es.h│ ├── greetings_ja.h│ └── greetings_vi.h├── lib│ └── libgreetings_enjavi.so└── src ├── greetings_es.c └── mainapp.cTa cũng cần được sửa lại tệp tin CMakeList.txt nữaNó vẫn thành như thế này:CMakeList.txt

## Ràng buộc về version#cmake_minimum_required(VERSION 2.8.12)## Tên project#project (multilang_greetings)## Khai báo địa điểm chưa thỏng viện (.so)#mix (PROJECT_LINK_LIBS libgreetings_enjavi.so)link_directories(lib)## Nơi chưa những file header(.h)#include_directories(include)## Thêm source .c bởi lệnh set##set(SOURCES src/greetings_es.c)## Thêm source .c bởi tệp tin GLOB#file(GLOB SOURCES "src/*.c")## File chạy sẽ tiến hành chế tác như thế nào# Sử dụng thư viện vẫn khai báo qua PROJECT_LINK_LIBS#add_executable(helloworld $SOURCES)target_link_libraries(helloworld $PROJECT_LINK_LIBS)Sau đó, ta cũng chạy CMake với Make để tạo thành file chạy:Kết trái của vấn đề chạy CMake phần lớn vẫn vậy.Còn hiệu quả của Make sẽ như thế này:

oedev
OECrossDev:~/Code/CMake/build$ makeScanning dependencies of target helloworld< 50%> Building C object CMakeFiles/helloworld.dir/src/mainứng dụng.c.o<100%> Building C object CMakeFiles/helloworld.dir/src/greetings_es.c.oLinking C executable helloworld<100%> Built target helloworldFile chạy là helloworldKết trái chạy của file này sẽ như thế này:

oedev
OECrossDev:~/Code/CMake/build$ ./helloworldHello worldKonichiwa!!!Xin chao !!!!Hola!!!Trên đây chỉ diễn đạt giải pháp cần sử dụng CMake với 1 ví dễ dàng bên trên Linux( tôi dung Ubuntu). Do bài viết đang quá lâu năm, tôi không bộc lộ bí quyết thực hiện trên Window (cho Visual Studio) của CMake. Về cơ phiên bản, họ sẽ có một lịch trình CMake (có GUI) để hỗ trợ việc export một source cất tệp tin CMakeList.txt ra một thỏng mục cất project Visual Studio. Có mấy điểm để ý sinh sống đây;

*

Thứ tự tiến hành đã là:

là tlỗi mục cho source code, vẫn đựng tệp tin CMakeList.txt là tlỗi mục cất cả project Visual Studio. để lựa chọn các loại Project đã export và các tđắm say số hẳn nhiên. giúp xem tác dụng.

Chụ ý sinh sống đó là cho dù ta có export ra project rồi nhưng mà source cơ mà project đó chưa đều sinh hoạt dạng tmê mẩn chiếu mang đến các tệp tin source chứa vào thỏng mục chọn bằng . Điều này tạo nên đến source ban sơ độc lập với project, dễ update Khi bắt buộc build trên các hệ quản lý và điều hành. Nhưng buộc phải chăm chú khi dịch rời thỏng mục source đó.