MacOS使用CMake

CMake是开源、跨平台的编译和打包工具,在有跨平台需求的项目里面,CMake是常用的工具。它可以根据目标平台生成不同的Makefile或者工程文件,生成Makefile后使用make编译代码。本文介绍CMake的安装和入门使用。

安装CMake

使用brew安装cmake,等待安装完成即可

brew install cmake

如果没有homebrew,首先要安装homebrew

使用CMake

新建一个项目文件夹CMakeProject,目录下新建一个C++文件CMakeTest.cpp,写入以下代码

#include <iostream>

int main() {
    std::cout << "hello world" << std::endl;
}

在目录下新建CMakeLists.txt文件,写入以下配置。PROJECT用于设置工程名称,ADD_EXECUTABLE的第一个参数为可执行文件名称,第二个参数为源代码文件。

PROJECT(HELLO)
ADD_EXECUTABLE(cmakeTest "CMakeTest.cpp")

在目录下执行cmake . 命令,目录下会生成Makefile,CMakeCache.txt,cmake_install.cmake等文件,接下来的make命令会用到Makefile文件。

执行make命令,当前目录下会生成cmakeTest可执行文件。在命令行中直接输入cmakeTest,终端中输出了hello world

CMake工具已经正常安装和运行了。

优化工程目录

在上面的介绍中,我们已经让CMake正常运行起来,但还有点工程问题。工程目录里面多了很多文件,并且和源码混合在一起,为了隔离CMake产生的文件和源码,我们需要新建build目录用于存放CMake的产物,新建src目录用于单独存放源码文件。注意这个时候,src目录下面也要新建一个CMakeLists.txt文件。
请添加图片描述
src目录下面的CMakeLists.txt文件写入配置

ADD_EXECUTABLE(cmakeTest "CMakeTest.cpp")

项目根目录下的CMakeLists.txt需要改为

PROJECT(HELLO)
ADD_SUBDIRECTORY(src bin)

这里的ADD_SUBDIRECTORY为添加子目录,第一个参数为源码的目录名称,第二个为生成的产物的目录

在build目录下执行命令cmake … 注意这里要使用…,因为项目根目录的CMakeLists.txt在上层文件夹。

执行成功后再执行make命令,此时build目录会生成bin目录,cd到bin目录,直接输入cmakeTest,终端里面输出了hello world

此时工程项目目录已经改造完成了。

猜你喜欢

转载自blog.csdn.net/u011608357/article/details/127218228