要从C ++源代码转换为二进制模块,过程大致如下:
set_of_source_files[a.cpp, b.cpp, ...] // conceptually, it doesn't matter where these are
||
|| Compiler <- [compiler_settings]
\/
set_of_object_files
||
|| Linker <- [linker_settings]
\/
binary module (dynamic library or executable)
现在,我知道 Visual Studio项目,他们
我不知道 cmake,但显然(?),使用cmake配置的信息与放入{{的信息略有不同1}}文件。
“cmake配置”只是一个格式不同的“vcproj文件”还是存在概念差异?(除了显而易见的一个(我假设)我输入cmake配置的信息与平台无关。)
这个问题的一个替代方法是回答 - 在上面的上下文中 - 为什么/ if(?)当使用Visual-C ++ 仅编译Windows时,会切换到cmake。
答案 0 :(得分:2)
Cmake是一个跨平台的制作 - 它从一组源文件开始,以及一组关于如何处理它们的相对抽象的指示。基于这些,它生成一组特定于平台的文件。如果指定Windows / Visual Studio作为目标,它可以/将生成一个vx [x] proj文件供您使用。
即使您只在Windows上使用Visual C ++,也可以可能,您可以从cmake中受益。显而易见的可能是,如果您想要定位许多不同版本的Visual Studio,并且能够为每个版本直接生成正确的文件,而不是为您想要支持的最旧版本生成文件,然后依赖于Visual Studio的升级功能将其转换为目标版本。
根据我对VS的升级能力(不是特别好)的经验,我认为可以/将是合理有效的使用。