Maintaining Makefiles and CMakeLists.txt

Maintaining Makefiles and CMakeLists.txt

本文关键字:txt CMakeLists and Makefiles Maintaining      更新时间:2023-10-16

当您与大量人一起工作时,维护MakefilesCMakeLists.txt都可能非常困难。我知道CMakeLists.txt可以生成Makefiles,但假设我想使用make来编译代码,并同时使用IDE具有一种Intellisense。我该如何实现?

在我要描述的情况下,CMakeLists.txt文件将消失,因此我没有机会与它们生成解决方案。

cmake不是构建经理!
它是其他构建经理的文件的生成器!

因此,您可以生成IDE(Visual Studio,Xcode,CodeBlocks,..)或生成Makefile的项目,或者您喜欢的任何内容以及CMAKE支持。因此,我不明白为什么您同时维护CMakeLists.txtMakefiles。只需维护CMakeLists.txt,然后从中生成各自的Makefiles

有关详细信息,请参见CMAKE文档 - 生成器:

命令行构建工具生成器

这些生成器支持命令行构建工具。为了使用它们,必须从命令行提示中启动CMAKE,其环境已经为所选编译器配置并构建工具。

  • Borland Makefiles
  • msys makefiles
  • mingw makefiles
  • nmake makefiles
  • nmake makefiles jom
  • 忍者
  • Unix Makefiles
  • watcom wmake

底线您应该能够为iDE或makefile生成您喜欢的构建管理器而没有任何并发症的文件。

在我要描述的情况下,CMakeLists.txt文件将消失,因此我没有机会与它们生成解决方案。

wat?您正在做一些非常奇怪的事情,而且很可能是错误的,但您没有提供任何细节。

关于Intellisense,我会说:

  • Visual Studio 2017作为CMAKE的内置支持,请参见公告

  • cmake可以使用所有命令生成一个JSON文件,请参见 cmake_export_compile_commands 因此,您可以使用它在vim

  • 中具有基于智能的曲折完成
  • qtCreator作为CMAKE的内置支持,因此您也可以完成。

首先要额外的提示:在整个项目的整个过程中不要尝试混合手工制作的make文件和CMake

正常方法是使用CMAKE创建制造文件。额外的cmake是跨平台,在您的情况下, nativ 支持某些IDE,例如。QTCreator,Clion(Awaik)。对于广泛的其他IDE CMAKE可以生成项目文件。

使用qtCreator的示例工作流程:

  • 创建一个简单的cmakelists.txt,至少用项目的名称
  • 将其加载到qtcreator
  • 添加源文件,从qtcreator中更新cmakelists.txt
  • 从QTCreator中构建,重复

但是,将使用相同的CMakeLists.txt在命令行上创建Make File。或在您的构建服务器或CI系统上。