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ā)中。