1. 在CentOS7上安裝CMake
在CentOS7上安裝CMake有兩種方式:一種是使用系統(tǒng)自帶的軟件包管理器yum安裝;另一種是從CMake官方網(wǎng)站下載源碼包并自行編譯安裝。
使用yum安裝CMake的命令如下:
sudo yum install cmake
如果需要安裝最新版本的CMake,可以從官方網(wǎng)站下載源碼包進(jìn)行編譯安裝。首先需要安裝CMake所需的依賴包:
sudo yum install gcc gcc-c++ make ncurses-devel
然后下載CMake源碼包,解壓縮并進(jìn)入目錄,執(zhí)行以下命令進(jìn)行編譯和安裝:
./bootstrap make sudo make install
2. 使用CMake構(gòu)建簡(jiǎn)單的C++程序
下面以一個(gè)簡(jiǎn)單的C++程序?yàn)槔?,介紹如何使用CMake進(jìn)行構(gòu)建。
首先創(chuàng)建一個(gè)名為"hello.cpp"的源文件,內(nèi)容如下:
#include <iostream>
int main() {
std::cout << "Hello, CMake!" << std::endl;
return 0;
}然后在項(xiàng)目根目錄下創(chuàng)建一個(gè)名為"CMakeLists.txt"的文件,內(nèi)容如下:
cmake_minimum_required(VERSION 3.0) project(hello) add_executable(hello hello.cpp)
接下來(lái)進(jìn)入項(xiàng)目根目錄,執(zhí)行以下命令進(jìn)行構(gòu)建:
mkdir build cd build cmake .. make
構(gòu)建完成后,在"build"目錄下會(huì)生成名為"hello"的可執(zhí)行文件。
3. 使用CMake構(gòu)建復(fù)雜的C++項(xiàng)目
對(duì)于復(fù)雜的C++項(xiàng)目,CMake提供了更強(qiáng)大的功能來(lái)管理構(gòu)建過(guò)程。例如可以指定源文件的目錄、包含文件的目錄、鏈接庫(kù)的目錄等。
假設(shè)我們有一個(gè)C++項(xiàng)目,包含三個(gè)源文件:main.cpp、util.cpp和util.h。項(xiàng)目結(jié)構(gòu)如下:
project/
src/
main.cpp
util.cpp
util.h
CMakeLists.txt在"CMakeLists.txt"文件中,我們可以添加以下內(nèi)容:
cmake_minimum_required(VERSION 3.0) project(myproject) include_directories(src) add_executable(myapp src/main.cpp src/util.cpp)
這樣CMake就能自動(dòng)管理這個(gè)項(xiàng)目的構(gòu)建過(guò)程了。
4. 使用CMake管理第三方依賴庫(kù)
在實(shí)際開發(fā)中,項(xiàng)目通常會(huì)依賴一些第三方庫(kù),比如OpenCV、Boost等。CMake提供了非常方便的方式來(lái)管理這些依賴庫(kù)。
以O(shè)penCV為例,我們可以在"CMakeLists.txt"文件中添加以下內(nèi)容:
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(myapp ${OpenCV_LIBRARIES})CMake會(huì)自動(dòng)搜索系統(tǒng)中是否安裝了OpenCV庫(kù),并將其包含和鏈接到我們的項(xiàng)目中。這大大簡(jiǎn)化了第三方依賴庫(kù)的管理過(guò)程。
5. 使用CTest進(jìn)行單元測(cè)試
CMake還集成了CTest,一個(gè)用于編寫和運(yùn)行單元測(cè)試的工具。我們只需在"CMakeLists.txt"文件中添加以下內(nèi)容:
enable_testing() add_test(NAME mytest COMMAND myapp)
然后執(zhí)行以下命令即可運(yùn)行單元測(cè)試:
mkdir build cd build cmake .. make ctest
6. 使用CPack打包程序
CMake還集成了CPack,一個(gè)用于創(chuàng)建安裝包的工具。我們只需在"CMakeLists.txt"文件中添加以下內(nèi)容:
set(CPACK_GENERATOR "RPM") include(CPack)
然后執(zhí)行以下命令即可生成RPM安裝包:
mkdir build cd build cmake .. make package
總之,CMake是一款功能強(qiáng)大、跨平臺(tái)的構(gòu)建系統(tǒng),在CentOS7上使用CMake構(gòu)建和編譯程序是一個(gè)非常好的選擇。通過(guò)本文,相信您已經(jīng)掌握了CMake的基本使用方法,可以應(yīng)用于您的實(shí)際開發(fā)中。