一、cmake的簡介
cmake是一個開源、跨平台的構建工具。它使用CMakeLists.txt文件中的指令來生成原始的構建文件,例如編譯器特定的Makefile或Windows Visual Studio等。CMake可以生成單獨的工程文件,而不是像Automake那樣把所有東西都混在一起,這使得管理多層嵌套和不同目錄的項目變得更加容易。此外,CMake降低了在不同操作系統和編譯器上的構建的複雜性。cmake可以幫助我們自動生成makefile文件,並且支持多種平台和編程語言。
二、在CentOS 7上安裝cmake
CentOS 7自帶了一些舊版本的cmake,可以通過以下命令安裝最新版本的cmake:
sudo yum install cmake -y
可以通過以下命令驗證cmake是否正確安裝:
cmake --version
三、使用cmake編譯C++程序
可以按照以下步驟使用cmake編譯C++程序:
1. 創建一個工作目錄:
mkdir workdir cd workdir
2. 創建一個C++源文件:
nano main.cpp
在文件中輸入以下代碼:
#include using namespace std; int main() { cout << "Hello, World!" << endl; return 0; }
3. 創建CMakeLists.txt文件:
nano CMakeLists.txt
在文件中輸入以下代碼:
cmake_minimum_required(VERSION 2.8.9) project (hello) add_executable(hello main.cpp)
其中,cmake_minimum_required指定cmake版本,project指定項目名,add_executable指定可執行文件,main.cpp是源文件名。
4. 生成Makefile文件:
cmake .
5. 編譯:
make
執行make命令後,將會生成名為“hello”的可執行文件。可以使用以下命令運行程序:
./hello
四、使用cmake編譯C程序
可以按照以下步驟使用cmake編譯C程序:
1. 創建一個工作目錄:
mkdir workdir cd workdir
2. 創建一個C源文件:
nano main.c
在文件中輸入以下代碼:
#include int main() { printf("Hello, World!\n"); return 0; }
3. 創建CMakeLists.txt文件:
nano CMakeLists.txt
在文件中輸入以下代碼:
cmake_minimum_required(VERSION 2.8.9) project (hello) add_executable(hello main.c)
4. 生成Makefile文件:
cmake .
5. 編譯:
make
執行make命令後,將會生成名為“hello”的可執行文件。可以使用以下命令運行程序:
./hello
五、使用cmake編譯靜態庫和動態庫
下面的示例代碼演示了如何使用cmake編譯靜態庫和動態庫。
1. 創建一個工作目錄:
mkdir workdir cd workdir
2. 創建一個C++源文件和一個頭文件:
nano add.cpp nano add.h
在add.h文件中輸入以下代碼:
#ifndef ADD_H #define ADD_H int add(int a, int b); #endif
在add.cpp文件中輸入以下代碼:
#include "add.h" int add(int a, int b) { return a + b; }
3. 創建CMakeLists.txt文件:
nano CMakeLists.txt
在文件中輸入以下代碼:
cmake_minimum_required(VERSION 2.8.9) project (add) # 編譯成動態庫 add_library(add SHARED add.cpp) # 編譯成靜態庫 add_library(add_static STATIC add.cpp) # 配置可執行文件 add_executable(app main.cpp) # 鏈接動態庫 target_link_libraries(app add) # 鏈接靜態庫 target_link_libraries(app add_static)
其中,add_library命令用於編譯成動態庫和靜態庫,add_executable用於配置可執行文件,target_link_libraries用於鏈接庫。
4. 生成Makefile文件:
cmake .
5. 編譯:
make
執行make命令後,將會生成名為“add”的動態庫和靜態庫,以及名為“app”的可執行文件。可以使用以下命令運行程序:
./app
六、結論
以上就是使用centos7cmake編譯C/C++程序的方法以及編譯靜態庫和動態庫的示例。cmake簡化了程序的編譯過程,使得程序的移植性更強,支持多種平台和編程語言。希望這篇文章能夠幫助你更好地使用cmake。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/152187.html