在要处理大量人员的大型项目时,同时维护Makefiles
和CMakeLists.txt
可能会非常困难。我知道CMakeLists.txt
可以生成Makefiles
,但是假设我想通过使用make
来编译我的代码,同时使用IDE来产生某种智能。我该如何实现?
在我所描述的情况下,CMakeLists.txt
文件将消失,因此我将没有机会与它们生成解决方案。
答案 0 :(得分:4)
CMake不是构建管理器!
它是其他构建管理器的文件生成器!
因此,您可以为IDE(Visual Studio,Xcode,CodeBlocks等)生成项目,或者生成MakeFile或任何您喜欢的以及CMake支持的文件。因此,我不明白您为什么同时维护CMakeLists.txt
和Makefiles
。
只需维护CMakeLists.txt
,然后从中生成相应的Makefiles
。
有关详细信息,请参见CMake Documentation - generators:
命令行构建工具生成器
这些生成器支持命令行生成工具。为了使用它们,必须从命令行提示符启动CMake,其环境已经为所选的编译器和构建工具配置了。
最重要的是,您应该能够为自己喜欢的构建管理器生成IDE或Makefile文件,而不会产生任何复杂性。
在我所描述的情况下,
CMakeLists.txt
文件将消失,因此我将没有机会与它们生成解决方案。
WAT?您正在做一些非常奇怪的事情,很可能是错误的,但是您没有提供任何详细信息。
答案 1 :(得分:0)
关于智能感知,我会说:
Visual Studio 2017作为对CMake的内置支持,see announcement
CMake可以使用所有命令生成json文件,请参见CMAKE_EXPORT_COMPILE_COMMANDS 这样您就可以使用它来制作智能clang based completion in vim
QtCreator作为对CMake的内置支持,因此您也可以完成。
答案 2 :(得分:0)
一开始的额外提示:不要在项目的整个过程中混合手工制作的make
文件和CMake
。
通常的方法是使用cmake创建make文件。额外的cmake是跨平台的,在您的情况下,某些IDE的 nativ 支持。 QtCreator,CLion(awaik)。对于广泛的其他IDE,cmake可以生成项目文件。
使用QtCreator的示例工作流程:
但是将使用相同的CMakeLists.txt
在命令行上创建Make文件。或在构建服务器或CI系统上。