首页/文章/ 详情

现代先进构建工具Cmake-使用Cmake构建C++和Fortran

22小时前浏览14

Cmake是一个先进的现代化构建工具,其可以通过编写CMakeLists.txt文件,产生不同平台,支持不同编译器的构建文件,简化了不同平台的项目的编译和构建过程。

实际上,不少开源软件均采用Cmake进行构建。本文首先介绍在用命令行的方式编译和运行C++和Fortran程序,然后用最基本的例子表明如何采用Cmake进行构建。

在Windows系统下,在安装编译器时,通常会把编译器的安装路径写到系统环境变量里,这样我们可以直接在命令行里用编译器的exe名称启动程序。

例如,在本机上安装了Vs和oneAPI2025,其中vs包含了对于C和C++的编译器cl.exe,打开oneApi安装目录下的命令提示符窗口,输入”cl”即可运行cl.exe,oneAPI包含了C++编译器icl.exe和Fortran编译器ifort.exe,因此输入相应的目录即可运行相应的编译器。

这样,只要我们有了源代码,就可以直接在命令行里运行,不需要打开vs创建项目:

编译器自带就把代码编译成了exe,接下来直接输入text1.exe即可运行。

上面这种命令行的方式很简单,对于单个程序时也很方便,如果有多个程序,将多个程序直接写在后面即可,如“cl test1.cpp a1.cpp a2.cpp”

当程序中调用了外部库时,我们当然依然可以采用命令行的方式来编译。但是,配置include路径,设置库文件的目录例如.lib等就很麻烦,而通过Cmake,编写一次CmakeLists文件,我们后续就可以不用重复设置,避免重复工作。

在Windows下,安装好cmake后,我们可以通过打开cmake-gui用界面来进行cmake构建操作,也可以用命令行的方式进行构建。

以下是一个例子:

编写好源程序文件和CMakeLists.txt:








// cmake-test1.cpp#include <iostream>int main(int argc, char const *argv[]){std::cout<<"this is cmake-test1\n";return 0;}


CMakeLists.txt中的内容:




cmake_minimum_required (VERSION 3.31.5)project (cpp1)add_executable(test1 cmake-test1.cpp)


在cmakeLists.txt共有3行内容,第一行是表明编译时cmake的最小版本,第二行创建了一个叫cpp1的项目,第3行是把cmake-test1.cpp文件加入到项目里,生成一个test1.exe的可执行文件。

运行cmake-gui.exe,设置下cpp文件所在路径和希望生成的文件的路径,在先后点击Configure和Generate,就会在build目录下生成相应的解决方案文件。

用vs打开cpp1.sln,把test1项目设为启动项目,即可运行。

以上,即是对于C++采用cmake进行构建的过程。看起来似乎流程并不简要,但是实际上对于大型工程,能够简化不少。

对于Fortran构建,一般还需要在CMakeLists中添加对Fortran的支持:





cmake_minimum_required (VERSION 3.31.5)project (fortran1)enable_language(Fortran)add_executable(cmake1 fortran-cmake1.f90)


上面是用Cmake构建C++和Fortran项目中的最基础例子,当然实际中CMAKE还有更多的知识需要学习,例如如何添加头文件路径,添加依赖库,指定各种编译选项,指定编译器等。在下一篇推文中,我们将介绍如何用Cmake工具完成大型稀疏矩阵特征值求解开源库Arpack的编译安装。

以上,即是本文的全部内容,感谢您的阅读


来源:有限元术
UM
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-04-06
最近编辑:22小时前
寒江雪_123
硕士 | cae工程师 签名征集中
获赞 50粉丝 110文章 64课程 9
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈