- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
对于我正在开发的一个小项目,我一直通过命令行使用简单的编译。但是,随着它越来越大,我决定学习并使用autoconf和automake来编译它。
经过一些配置,我成功地使用 automake 构建了。但是我注意到输出二进制文件的大小比通过命令行使用 g++ 大。我尝试使用静态和动态库,结果是一样的。
我还尝试了一个简单的 hello world,它与 automake 相比命令行编译也更大。
因此,我尝试运行 objdump -h
:命令行编译返回 27 个部分,而在另一侧 automake 编译返回相同的 27 个部分加上 7 个名为 debug_aranges 、debug_info 的部分, debug_abbrev、debug_line、debug_loc、debug_ranges。所以我显然倾向于认为它与调试有关。
所以,任何人都知道这些部分是做什么用的,如果它们是必要的,以及如何去掉它们,以便分发的可执行文件更小。
最佳答案
只需在安装二进制文件时调用 make install-strip
,install
就会在安装过程中剥离它们。
关于c++ - automake 输出二进制文件大于命令行编译的二进制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8792943/
以下语句不起作用: dist_include_DATA = someheaders.h 导致错误: Makefile.am:8: `includedir' is not a legitimate di
在我的 Makefile.am文件我有这样的东西: bin_PROGRAMS = foo bar foo_SOURCES = foo.cpp bar_SOURCES = bar.cpp 我有兴趣拥有
假设我有一个这样的项目: (dev dir) - README - INSTALL / src - blah.cpp - blah.hpp / conf - blah_one.xml
想象一下由 autoconf 生成的以下目标和命令: .c.lo: $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
我想在安装二进制文件之前使用 automake 处理/修改它们。例如,我想将二进制文件中的符号提取到单独的文件和位置(如 this )。另一个示例是收集关键 Assets 的 md5sum 以发布报告
我遇到了一个 automake 的问题,我似乎找不到一个干净的解决方案,这似乎应该是可能的(甚至是简单的),但没有简单的工作。 基本上,我遇到的问题是源文件包含自动生成的头文件。我可以添加依赖项来生成
此主题的大部分内容都在 pkginclude_HEADERS 上的此主题中进行了介绍。 我有一个开源库,它有一些包含通用名称的内容。我怀疑最好的解决方案是将我的伞形包含文件放在 pkginclude_
假设我开发了 libfoo.a 作为我编译过程的中间步骤。这是 Makefile.am 中的一行: noinst_LIBRARIES = libfoo.a 这个库依赖于其他库。为了防止我收到 unde
操作系统: Ubuntu 14.14 automake 版本:automake (GNU automake) 1.14.1 我使用 automake 构建源代码以创建共享库。 但是我得到一个错误,au
我在 Rapbian (2014-09-09-wheezy-raspbian) 发行版上安装 automake 1.14.1 时遇到问题。我写了 sh ./configure 然后我写了 make 然
我对 GNU Make 非常有经验,但对 autotools 完全陌生。通过查看一些教程,我了解到 autotools 是一种标准化 makefile 目标并跨多个体系结构构建的方法。这是一件好事,因
我的 Makefile.am包括一个文件(带有各种定义的变量),例如: include make.config ... 问题是该文件又是由工具(即 config.generator.sh )基于某些输
我正在尝试编译和构建 automake 1.16,但它以下列方式失败: help2man: can't get `--help' info from automake-1.16 Try `--no-d
我正在尝试在 CentOS5 上构建 glib-2.36.4。我意识到升级到 6 会更明智,但由于客户要求,这是不可能的。 我已经开始构建,但出现以下错误。该错误提示系统上不存在 automake-1
在我的Makefile.am中,我进行了以下测试: TESTS += tests/test1 check_PROGRAMS += tests/test1 tests_test1_SOURCES = t
我正在尝试在 automake 中执行此操作 platform=$(uname) ifeq ($(platform), Darwin) stmt = ... else stmt1 =
我正在尝试在 automake 中执行此操作 platform=$(uname) ifeq ($(platform), Darwin) stmt = ... else stmt1 =
如何告诉 Automake 构建一个不需要安装的动态模块? pkglib_LTLIBRARIES = mywrapper.la mywrapper_la_LDFLAGS = -no-undefined
我刚刚建立了一个 cross-helloworld automake 项目(用于 stm32f4-discovery)。我有一个自定义 discovery.ld 脚本。我在我的 Makefile.am
我知道我可以使用 install-data-hook在复制我的数据文件后做任何我想做的事情,这样我就可以按照我想要的方式调整文件权限。 不过,我的问题在它之前。 有什么办法可以告诉我automake在
我是一名优秀的程序员,十分优秀!