维护Makefile和CMakeLists.txt

时间:2019-02-27 16:52:05

标签: c++ makefile cmake

在要处理大量人员的大型项目时,同时维护MakefilesCMakeLists.txt可能会非常困难。我知道CMakeLists.txt可以生成Makefiles,但是假设我想通过使用make来编译我的代码,同时使用IDE来产生某种智能。我该如何实现?

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

3 个答案:

答案 0 :(得分:4)

CMake不是构建管理器!
它是其他构建管理器的文件生成器!

因此,您可以为IDE(Visual Studio,Xcode,CodeBlocks等)生成项目,或者生成MakeFile或任何您喜欢的以及CMake支持的文件。因此,我不明白您为什么同时维护CMakeLists.txtMakefiles。 只需维护CMakeLists.txt,然后从中生成相应的Makefiles

有关详细信息,请参见CMake Documentation - generators

  

命令行构建工具生成器

     

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

     

最重要的是,您应该能够为自己喜欢的构建管理器生成IDE或Makefile文件,而不会产生任何复杂性。

  

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

WAT?您正在做一些非常奇怪的事情,很可能是错误的,但是您没有提供任何详细信息。

答案 1 :(得分:0)

关于智能感知,我会说:

答案 2 :(得分:0)

一开始的额外提示:不要在项目的整个过程中混合手工制作的make文件和CMake

通常的方法是使用cmake创建make文件。额外的cmake是跨平台的,在您的情况下,某些IDE的 nativ 支持。 QtCreator,CLion(awaik)。对于广泛的其他IDE,cmake可以生成项目文件。

使用QtCreator的示例工作流程:

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

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