当我包含一个标准库时,CMake 会创建巨大的二进制文件

CMake creates huge binary when I incude a standard library

我刚刚使用 Cmake 在 C++ 中创建了一个 Helloworld。 正如预期的那样,输出二进制文件为 10KB。 当我在 main 中添加 #include <string> 而没有使用任何字符串 时,生成的二进制文件变为 100KB。

当我手动编译相同的 main.cpp 文件 gcc main.cpp -o helloworld 时,输出的二进制文件具有相同的大小,有或没有 #include <string>

是否有任何 Cmake 关键字可用于允许输出二进制文件动态包含所有内容,而不是在内部包含所有库?

我遇到了问题。 在我的 CMakeLists.txt 文件中存在

add_compile_options(-Wall -Werror -std=c++17 -g)

所以

-DCMAKE_BUILD_TYPE=Release

没有任何影响。

我刚刚删除了 -g 参数并且调试符号从输出二进制文件中消失了