关于编译后的大小的问题

时间:2015-03-05 12:54:39

标签: cmake size

我有一组文件。在FreeBSD下用gcc49编译。默认的makefile,由我创建。嗯,这不是问题。

好的,我决定用CMake编译。

  • 使用默认makefile(gcc49)进行编译时,输出目标大小为:5 MB
  • 使用cmake进行编译时(gcc49,与makefile默认相同的标志)输出目标为:12 MB

我的问题是,为什么这么大的差异。

我希望文件结束,尺寸很小,可以5mb。

如何制作我的5mb文件(使用cmake)

THX all

2 个答案:

答案 0 :(得分:0)

在这两种情况下,您使用不同的选项调用编译器。

CMake已经为您设置了一堆最适合您项目的编译器和链接器选项。不幸的是,如果您不熟悉CMake,那么为什么要设置特定选项以及如何习惯性地更改它并不总是显而易见的。

对于Makefile生成器,要找出CMake传递给编译器的选项,可以在shell上调用VERBOSE时设置make环境变量:

$ VERBOSE=1 make

将CMake使用的命令与手动构建时使用的命令进行比较。一旦确定了罪魁祸首,请进一步研究如何使用CMake最佳地更改该特定构建选项。

答案 1 :(得分:0)

CMake默认构建 debug 配置。如果您还没有切换到 发布 ,则会将二进制文件构建为调试,从而导致大小增加。

您可以再次测试 发布 ,例如:

cd release_dir
cmake -DCMAKE_BUILD_TYPE=Release ..
make