自动使输出二进制文件大于命令行编译的二进制文件
automake output binaries bigger than the command-line compiled bins
对于我正在开发的一个小项目,我一直在通过命令行使用简单的编译。然而,随着它变得越来越大,我决定学习并使用autoconf和automake来编译它
经过一些配置,我成功地使用automake构建了。然而,我注意到输出二进制文件的大小比通过命令行使用g++要大。我尝试使用静态和动态库,结果是一样的。
我还尝试过一个简单的hello世界,使用automake也比使用命令行编译更大。
因此,我尝试运行objdump -h
:编译的命令行返回了27个部分,另一方面,编译的automake返回了相同的27个部分加上7个部分,分别称为debug_aranges、debug_info、debug_abbrev、debug_line、debug_loc和debug_ranges。所以我显然倾向于认为这与调试有关。
所以,任何人都知道这些部分是用来做什么的,如果它们是必要的,以及如何删除,这样可执行文件就可以更小地分发。
安装二进制文件时只需调用make install-strip
,install
将在安装过程中剥离它们。
相关文章:
- 通过命令行在Visual Studio中编译单个独立文件
- 是否可以在命令行中将输入参数传递给可执行文件
- 如何从命令行使用 cmake 为有根的安卓设备制作可执行文件?
- 使用 MinGW 在 Windows 上的命令行编译C++文件
- 程序运行,但文件无法打开.C++中的命令行
- 选择特定版本的 Visual Studio 命令行工具包,并根据特定版本的C++运行时环境编译文件
- 编写一个将 LLVM IR 文件作为命令行参数的程序
- 通过命令行参数获取llvm ir文件时面临问题
- 如果在命令行c++中给出了一个文件,那么如何读取该文件
- 如何在 Boost Program_Options 中使用命令行和分层配置文件的选项
- 如何在不使用文件扩展名的情况下使用命令行参数打开C++中的文本文件?
- 从 C++ 中的二进制路径(命令行语句)获取进程 ID
- 如何处理错误"E1696命令行错误:无法在Visual Studio 2017中打开元数据文件"mscorlib.dll"?
- 二进制数据作为命令行参数
- 如何在窗口上的命令行中读取输入 .in 文件
- Intel-Pin:如何将命令行论证传递给二进制文件
- 使用提升程序选项通过配置文件/命令行解析自定义对象
- MSI 文件命令行参数解析
- 将文件的每一行作为命令行参数传递给二进制文件
- 自动使输出二进制文件大于命令行编译的二进制文件