一、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/n/152187.html