之前分享过一篇关于 cmake 的入门文章:《使用 cmake 来搭建跨平台的应用程序框架:C语言版本》,那篇文章重点是描述如何利用 cmake 来编译或者构建跨平台的工程,并没有涉及到团队协作开发方面的内容。
成都网络公司-成都网站建设公司成都创新互联公司10年经验成就非凡,专业从事网站建设、成都网站设计,成都网页设计,成都网页制作,软文平台,广告投放平台等。10年来已成功提供全面的成都网站建设方案,打造行业特色的成都网站建设案例,建站热线:18982081108,我们期待您的来电!
这篇文章提供了一个简洁易懂的 cmake 工程模板,可以满足一个小团队的合作开发,无论是在代码安全性,还是开发效率上,都能满足基本的开发需求。
本文详细描述了文件结构和操作流程,如何在Linux系统使用命令行来编译,如何在Windows系统中使用VSCode 和Visual Studio 2019来进行开发和编译。
使用这个cmake模板之后,代码的结构非常的清晰,编译过程中产生的中间文件也不会污染源代码。
无论是开发一些个人项目,或者是在一些小团队中使用是绰绰有余了。
示例代码中核心的两个文件就是:app.cmake和lib.cmake,几乎每一行都有注释。
在团队开发工作中,每个人负责不同的模块。
从代码保密的角度看,除了项目负责人(或者说项目整合人员)有权限获取一个项目中的所有代码之外,每个开发者通常只拥有自己负责的模块。
每个开发者在编译自己的模块时,需要把输出文件(头文件、库文件、文档)等,汇总到一个中央仓库中,方便整合人员进行集成编译。
因此,示例代码如下图所示:
CMakeLists.txt:是最外层的 cmake 文件。
install:是所有模块编译结果的安装目录,便于项目整合人员集成编译。
myapp:是一个可执行程序的模板。
mymath:是一个动态链接库的模板。
再来看一下mymath内部的文件组织结构:
build:存放编译过程中产生的中间文件,不会污染源代码。当然了,如果使用 git 来进行版本管理,需要把这个目录添加到 .gitignore 文件中。
lib.cmake:比较重要的 cmake 文件,这个模板的核心价值就在这个文件中。
source:存放源代码,并且区分了 linux 和 windows 系统,在不同的系统上编译,会自动编译对应目录下的 C 文件。
include:存放头文件。
myapp目录内部结构与mymath几乎是一样的,这里就不赘述了。
这两个模块的编译结果会自动输出到install目录,如下图所示:
在install目录内:
include:汇总了所有模块的头文件。
library:汇总了所有模块输出的库文件。
bin:汇总了所有的可执行程序(一些单元测试程序根据自己的需要是否输出此目录)。
删除install下所有文件和目录,得到一个干净的目录。
创建build目录,存放中间文件:
$ cd demo_cmake\mymath
$ mkdir build
编译:
$ cd build
$ cmake ..
$ make
成功编译后,在install目录里可以看到编译的输出结果:
demo_cmake\install\include\mymath\mymath.h
demo_cmake\install\library\linux\debug\libmymath.so
$ cd demo_cmake\myapp
$ mkdir build
$ cd build
$ cmake ..
$ make
查看install目录下的输出结果:
demo_cmake\install\bin\linux\debug\myapp
$ cd demo_cmake\install\bin\linux\debug
$ ./myapp
执行结果如下图:
在VSCode IDE中,通过菜单【File】-【Open Folder】,打开文件夹demo_cmake。
因为demo_cmake目录下存在一个顶层CMakeLists.txt文件,所以VSCode侦测到之后会自动进行cmake配置,同时会创建目录build来存放所有的中间文件。
有些VSCode版本会跳出一个提示窗,让用户选择进行cmake配置,如下一步中所示。
可以同时按下:【ctrl】 + 【shift】 + 【p】,重新进行cmake配置:
同时按下【shift】+【F7】,(或者按下VSCode最下方 【Build】右侧的编译目标),弹出窗口:
查看install目录中的输出文件:
demo_cmake\install\library\windows\debug\mymath.lib
demo_cmake\install\bin\windows\debug\mymath.dll
同时按下【shift】+【F7】,选择编译myapp。
查看install目录:
demo_cmake\install\bin\windows\debug\myapp
打开命令行窗口: x64 Native Tools Command Prompt for VS 2019。
> cd demo_cmake
> md build
> cd build
> cmake ..
输出如图:
此时,可以看到解决方案:demo_cmake\build\demo_cmake.sln。
使用VS2019打开解决方案文件:
在工程mymath上单击右键,选择【重新生成】,在输出信息区可以看到生成了文件:
demo_cmake\install\library\windows\debug\mymath.lib
demo_cmake\install\bin\windows\debug\mymath.dll
在工程myapp上单击右键,选择【重新生成】。
在输出信息区可以看到生成了文件:
demo_cmake\install\bin\windows\debug\myapp.exe
我们知道,在Windows平台上,VS2019只是一个IDE而已,它的底层是调用MSBuild来执行编译动作的。
MSBuild的角色与cmake非常类似,使用起来也比较方便,以后再总结一篇关于MSBuild的模板工程。
本文转载自微信公众号「IOT物联网小镇」,可以通过以下二维码关注。转载本文请联系IOT物联网小镇公众号。
当前题目:分享一个适合【团队】开发的cmake【跨平台】工程模板
网址分享:http://www.shufengxianlan.com/qtweb/news21/81571.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联