分享一个适合【团队】开发的cmake【跨平台】工程模板跨平台工程,不涉及团队协作开发。本文提供了一个简洁易懂的cmake项目模板,可以满足小团队的协同开发,在代码安全和开发效率上可以满足基本的开发需求。本文详细介绍了文件结构和运行过程,如何在Linux系统上使用命令行编译,以及如何在Windows系统上使用VSCode和VisualStudio2019开发编译。使用这个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:汇总了所有的可执行程序(一些单元测试程序根据自己的需要输出这个目录)。操作:编译编译Linux系统下的动态库,删除install下的所有文件和目录,得到一个干净的目录。创建build目录,存放中间文件:$cddemo_cmake\mymath$mkdirbuild编译:$cdbuild$cmake..$make编译成功后,在install目录下可以看到编译的输出:demo_cmake\install\include\mymath\mymath.hdemo_cmake\install\library\linux\debug\libmymath.so编译可执行文件$cddemo_cmake\myapp$mkdirbuild$cdbuild$cmake..$make检查安装目录下的输出:demo_cmake\install\bin\linux\debug\myapp运行可执行程序$cddemo_cmake\install\bin\linux\debug$./myapp执行结果如下:在Windows系统中使用VSCode开发创建MSVC工程在VSCodeIDE中,通过菜单【文件】-【打开文件夹】,打开文件夹demo_cmake。因为在demo_cmake目录下有一个顶层的CMakeLists.txt文件,VSCode检测到后,会自动配置cmake,并创建一个目录build来存放所有的中间文件。部分VSCode版本会弹出提示窗口让用户选择cmake配置,如下图所示。执行cmake配置,可以同时按下[ctrl]+[shift]+[p],重新执行cmake配置:编译动态库,同时按下[shift]+[F7],(或者在编译目标的VSCode端按右键【Build】),弹出窗口:查看安装目录下的输出文件:demo_cmake\install\library\windows\debug\mymath.libdemo_cmake\install\bin\windows\debug\mymath.dll编译可执行程序按[shift]+[F7],选择编译myapp。查看安装目录:demo_cmake\install\bin\windows\debug\myapp双击运行可执行程序Windows仅使用VS2019开发生成VS2019解决方案打开命令行窗口:x64NativeToolsCommandPromptforVS2019>cddemo_cmake>mdbuild>cdbuild>cmake..输出结果如图:使用VS2019编译动态库此时可以看到解决方案:demo_cmake\build\demo_cmake.sln。使用VS2019打开解决方案文件:右键项目mymath,选择【重新生成】,可以在输出信息区看到生成的文件:demo_cmake\install\library\windows\debug\mymath.libdemo_cmake\install\bin\Windows\debug\mymath.dll编译可执行程序,右击myapp项目,选择【Regenerate】。在输出信息区可以看到生成的文件:demo_cmake\install\bin\windows\debug\myapp.exe运行可执行程序我们知道,在Windows平台上,VS2019只是一个IDE,它的底层就是调用MSBuild执行编译动作。MSBuild的作用和cmake很相似,使用起来更方便。后面会总结一个关于MSBuild的模板工程。本文转载自微信公众号“IOT物联网小镇”,可通过以下二维码关注。转载本文请联系物联小镇公众号。
