CMake入门教程:从零开始构建C/C++项目

小万哥
• 阅读 489

CMake是一个跨平台的自动化构建工具,可以用于构建各种类型的项目,包括C++、C、Python、Java等。本文将从零开始,介绍如何使用CMake构建一个简单的C/C++项目


安装CMake

首先,需要下载并安装CMake。可以从CMake官网下载。如果404 Not Found,可以试一下这个国内镜像网址下载地址


创建项目文件夹

在本地创建一个项目文件夹,用于存放项目的源代码和构建文件。


创建源代码文件

在项目文件夹中创建一个源代码文件,例如hello.chello.cpp。在文件中编写一个简单的程序,例如输出“Hello, World!”。源码如下:

#include <iostream>

int main() {
    std::cout << "Hello, World!\n";
    return 0;
}

新建CMakeLists.txt文件

在项目文件夹中创建一个名为CMakeLists.txt的文件。该文件是CMake的构建配置文件,用于指定项目的源代码文件、编译选项和生成的可执行文件等信息。

以下是一个简单的CMakeLists.txt文件示例:

# 指定CMake版本
cmake_minimum_required(VERSION 3.10) 

# 指定项目名称 
project(hello)  

# 添加源代码文件
add_executable(hello hello.cpp)

上述代码中,cmake_minimum_required指定了CMake的最低版本要求,project指定了项目的名称。add_executable指定了生成的可执行文件名称和源代码文件的路径。


构建项目

在项目文件夹中打开终端,输入以下命令进行构建:

mkdir build  # 创建一个build文件夹
cd build  # 进入build文件夹
cmake ..  # 生成Makefile文件
make  # 编译源代码并生成可执行文件

执行完以上命令后,会在build文件夹中生成一个可执行文件hello


运行项目

在终端中输入以下命令运行生成的可执行文件:

./hello

此时,将输出Hello, World!信息。至此,一个简单的C/C++项目就被成功构建了。


跨平台构建

CMake支持在不同的操作系统和编译器下自动生成对应的构建文件。因此,只需要保证在不同平台上安装了相应的编译器和工具链,就可以实现跨平台构建。

下面是一个在WindowsLinux下都可以构建的CMakeLists.txt文件示例:

cmake_minimum_required(VERSION 3.10)

project(my_project)

if(WIN32)
    set(CMAKE_CXX_COMPILER "MSVC")
elseif(UNIX)
    set(CMAKE_CXX_COMPILER "g++")
endif()

set(CMAKE_CXX_STANDARD 11)

add_executable(hello hello.cpp)

在这个示例中,我们使用if语句来判断平台类型,并设置相应的编译器。通过这种方式,可以实现在不同平台下都可以编译和构建项目的目的。


总结

本文介绍了使用CMake构建一个简单的C/C++项目的步骤。首先需要安装CMake,并创建一个项目文件夹。然后创建源代码文件和CMakeLists.txt文件。最后,在终端中输入命令进行构建和运行。CMake可以根据项目的规模和需求,灵活配置构建选项,方便快捷地完成自动化构建。

点赞
收藏
评论区
推荐文章
小万哥 小万哥
7个月前
CMake 教程:常用命令及其使用方法
CMake是一个跨平台、开源的构建工具,它可以自动生成Makefile或者VisualStudio等IDE的工程文件。它能够帮助开发者更方便地管理项目的构建过程,提高项目构建的效率。在本文中,我们将介绍CMake常用的命令以及对应的用法addexecuta
Stella981 Stella981
3年前
Clion+Cmake+Qt5+Qwt+msys2+MinGW在Windows下的安装配置使用教程
摘要:CLion,acrossplatformC/CIDE.本文主要介绍基于Clion作为IDE,MinGW作为编译器,CMake作为项目构建工具,开发基于Qt5、qwt的C图形GUI项目的安装、配置、编译过程。KeyWords:Clion;Cmake;Qt5;Qwt;msys2;MinGW;Windows目
Wesley13 Wesley13
3年前
Ubuntu配置ORB
https://www.imooc.com/article/details/id/291361\.提示“CMAKE\_CXX\_COMPILERNOTFOUND”具体形式:CheckforworkingCXXcompiler:CMAKE\_CXX\_COMPILERNOTFOUND CMakeError:yourCXX
Stella981 Stella981
3年前
Apache Arrow入门
1.源码编译1.1环境准备安装cmake等工具sudoaptgetinstall\buildessential\cmake1.2下载源码gitclonehttps://github.com/apache/arrow.g
Stella981 Stella981
3年前
RocksDB安装
对于裸机来说,先得安装C的编译工具yumyinstallgccgccc下载cmakewgethttps://cmake.org/files/v3.9/cmake3.9.2.tar.gztarxzvfcmake3.9.2.tar.gzcdcmake3.9.2./con
Stella981 Stella981
3年前
QT开发——动态库(.so文件)的生成与调用
1.qmake方式生成和调用动态库链接:https://blog.csdn.net/lywzgzl/article/details/428059912.cmake方式生成和调用动态库2.1创建共享库项目Cmake新建一个QtCreator项目,在C
Stella981 Stella981
3年前
Faied to run MSBuild commond CmakeError
问题1:FaiedtorunMSBuildcommondCmakeError想要用cmake编译一个slam的工程,因为是新电脑,编译的时候遇到了这个问题首先工程的cmake文件是没有问题的,因为我在以前的电脑上可以正常的编译可使用,而在这里却出现了问题,查看了资料后解决方法如下:我的cmake版本是cmake3.13,据说很多
Wesley13 Wesley13
3年前
JNA传引用调用C接口
新建一个简单的cmake管理的c工程,只包含一个MakeLists.txt和src1.cpp,内容分别如下cmake_minimum_required(VERSION3.0)project(jna_testCCXX)add_library(fooSHAREDsrc1.cpp)
小万哥 小万哥
1年前
CMake vs Makefile: 如何选择适合你的项目构建工具
在软件开发中,构建(build)是一个非常重要的过程。我们需要将源代码转换为可执行文件或库文件。为了完成此过程,我们通常使用构建工具来自动化构建过程。CMake和Makefile都是用于构建和管理软件项目的工具。CMake是一个跨平台的构建工具,它可以自动
小万哥 小万哥
1年前
CMake构建指南:如何提高C/C++项目的可维护性
如果您是一位C/C开发人员,那么您一定知道在编写和维护大型项目时所面临的挑战。这些项目通常包含大量的源代码、库和依赖项,需要耗费大量的时间和精力才能构建和维护。在这种情况下,使用自动化工具可以大大减轻您的负担,提高项目的可维护性。CMake就是这样一款