C++ CMake是否比正常设置占用更多内存?

C++ CMake是否比正常设置占用更多内存?,c++,visual-studio-code,visual-c++,cmake,C++,Visual Studio Code,Visual C++,Cmake,我只是好奇:CMake比VS代码运行调试设置占用更多内存吗?以及正常的sln项目 我最近检查了文件的大小是4.18MB,但磁盘使用量是188MB 为什么?CMake是一种工具构建、测试和打包自动化工具。它不是一个编译器 最终的可执行文件大小或性能确实取决于编译器,因此它独立于CMake(但不独立于您在CMakeLists.txt中设置的内容) 为什么在使用CMake时,您的可执行文件比Microsoft Visual Studio*.sln解决方案更大 原因是生成配置中存在一些差异: 调试(使

我只是好奇:CMake比VS代码运行调试设置占用更多内存吗?以及正常的sln项目

我最近检查了文件的大小是4.18MB,但磁盘使用量是188MB


为什么?

CMake是一种工具构建、测试和打包自动化工具。它不是一个编译器

最终的可执行文件大小或性能确实取决于编译器,因此它独立于CMake(但不独立于您在CMakeLists.txt中设置的内容)

为什么在使用CMake时,您的可执行文件比Microsoft Visual Studio*.sln解决方案更大

原因是生成配置中存在一些差异:

  • 调试(使用符号),vs发布
  • 静态或动态链接的库
  • 优化级别和类型
  • 使用的编译器

可能启用了调试符号?VS*.sln是“正常”项目吗?我可以要求相反。你说“文件是4.18MB,但磁盘使用量是188MB”是什么意思?哪个文件和哪个磁盘使用情况?不是文件,而是整个文件夹:build文件夹,其中包含cmake说明…您不会将完整的build文件夹发送给客户,对吗?只有二进制文件。哪一个是最优化的,哪一个是占用内存最少的,哪一个是最友好的?有很多因素比缓存文件磁盘空间更相关,很难回答。但如果您看到的是“使用哪一个?”,那么请考虑以下问题:使用cmake可以生成VS项目,但也可以生成Makefile或Ninja、XCode等。。就个人而言,作为一名计算机科学家/工程师,我不想受制于大公司的决策和价格,也不想受制于我的产品/项目/公司。我知道,但我不想编写占用更多空间且效率低下的代码。不仅仅是代码,但是编译器又在混合编译器和项目生成工具:CMake不会构建您的项目,对二进制/程序的大小或效率没有任何影响。程序的效率/空间取决于编译器和用于构建的配置(调试/发布/优化等)