automake自动编译工具

2023-05-16

automake自动编译生成makefile文件,使用automake,程序开发人员只需要写简单的宏文件,生成configure,再生成Makefile.in,最终生成一个惯例的makefiel文件。

automake执行命令顺序

autoscan
aclocal
autoconf
automake --add-missing
./configure
make
./exe

创建文件并执行autoscan

  1. 创建文件就不用说了吧,顺便创建一个c文件
    在这里插入图片描述

  2. 并且执行autoscan
    在这里插入图片描述
    多出了autoscan.log和configure.scan
    将configure.scan复制为configure.ac,并且修改其中的内容
    在这里插入图片描述
    修改其中的内容
    在这里插入图片描述
    此文件的相关内容需要根据软件和系统的环境进行配置,但是AM_INIT_AUTOMAKE宏需要自己添加,它是automake所必备的宏。

  3. autoconf命令安装工具生成m4文件
    在此之前aclocal工具用于扫描configure.ac文件生成aclocal.m4
    在这里插入图片描述

  4. autoconf生成config.h.in
    在这里插入图片描述

  5. 创建Makefile.am文件
    Automake工具会根据configure.in中的参量把Makefile.am转换成Makefile.in文件
    在这里插入图片描述

  6. 使用Automake生成Makefile.in文件
    在这里插入图片描述
    出错啦。此时就是找不到文件,创建找不到的文件即可
    在这里插入图片描述
    运行automake --add-missing
    在这里插入图片描述

  7. 运行./configure

在这里插入图片描述
生成makefile文件即可正常执行make命令

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

automake自动编译工具 的相关文章

  • automake自动编译工具

    automake自动编译生成makefile文件 xff0c 使用automake xff0c 程序开发人员只需要写简单的宏文件 xff0c 生成configure xff0c 再生成Makefile in xff0c 最终生成一个惯例的m
  • autoscan、aclocal、automake和autoconf区别【转】

    转自 https blog csdn net renhui1112 article details 96480535 autoscan 扫描源代码以搜寻普通的可移植性问题 比如检查编译器 库 头文件等 生成文件configure scan
  • GNU Autotools:无需版本信息即可重建

    我需要构建一个配置有自动工具的库 通常configure make make install步骤生成版本化共享库 例如libfoo so x x是否可以修改configure ac或Makefile am 当然还有autoreconf 以便
  • 使用 automake 设置每个文件的标志

    有没有办法使用 automake 在每个文件的基础上设置标志 特别是 如果我有一个 C 项目 并且想要使用 W 编译除我想要禁用特定警告的文件之外的所有文件 我该怎么办 我尝试过类似的东西 CXXFLAGS WAll bin PROGRAM
  • Makefile.am 创建空目录

    使用自动工具 我需要在键入 make install 时创建一个空目录树 例如 etc myprg foo 现在 我通过指定空目标来做到这一点 如下所示 myprgdir sysconfdir myprg myprgfoodir sysco
  • 使用 pkg-config 宏 PKG_CHECK_MODULES 失败

    我确信这是一个相当简单的问题 我有一个非常简单的configure ac 文件 我用它来学习autoconf 和pkg config 如何协同工作 这confgure ac文件看起来像 AC PREREQ 2 61 AC INIT auto
  • Automake:构建不被安装的共享模块

    如何告诉Automake构建一个不被安装的动态模块 pkglib LTLIBRARIES mywrapper la mywrapper la LDFLAGS no undefined module avoid version 导致 mywr
  • Automake 将两个静态库合并为一个

    我正在尝试将预构建静态库中的符号包含到我正在构建的静态库中 然后 我正在构建的静态库将在可执行文件内部使用 我遇到的问题是我的静态库中从其他静态库获取了未定义的符号 这意味着我从预构建的静态库中需要的符号没有包含在我的静态库中 使用自动工具
  • automake环境变量条件

    我有一个文件 Makefile am 我用来生成 Makefile 在生成的 Makefile 中我想要类似的内容 ifndef SOURCECODEPATH SOURCECODEPATH home root source code pat
  • AM_LDFLAGS 和 LDFLAGS 有什么区别

    我想知道 AM LDFLAGS 和 LDFLAGS 之间有什么区别 因为我遇到了错误 error AM LDFLAGS must be set with before using 当我在 foreach 循环中使用 AM LDFLAGS 时
  • Automake - 安装版本“automake-1.14.1”时遇到困难

    我在 Rapbian 2014 09 09 wheezy raspbian 发行版上安装 automake 1 14 1 时遇到问题 我写sh configure然后我写了make然后终端写信给我 make CDPATH ZSH VERSI
  • 使用 automake 安装包含大量文件的数据目录树

    我有一个数据目录 我希望 automake 为其生成安装和卸载目标 本质上 我只想将此目录逐字复制到 DATA 目录 通常 我可能会单独列出所有文件 例如 dist whatever DATA dir subdir filea 但是当我的目
  • Automake 变量来整理 Makefile.am

    我有一个目录 src 包含所有源文件 bin 用来在运行 make 命令后存储所有二进制文件 该目录如下所示 BuildDirectory src bin configure Makefile am configure ac 现在在 Mak
  • 我可以在 distcheck 期间使用 $dc_install_base 安装 systemd 文件吗?

    我有以下用于安装 systemd 服务文件的 Autotools 代码 该文件必须安装在外部 prefix到 pkg config 变量指定的目录 我知道这是不正确的 但我无法改变 systemd 的工作方式 配置文件 AC ARG WIT
  • LDADD 和 LIBADD 有什么区别?

    我正在尝试设置一个混合使用 libtool 库和可执行文件的 automake 项目 并且我很难理解 automake 文档 尤其是 as 涉及告诉编译器进行链接 那么有人可以解释一下之间的区别吗LDADD and LIBADD 像 什么时
  • 如何在 Makefile.am 中指定我想要 C++0x?

    目前我的项目有以下简单的树 Makefile am configure ac README src main cpp src Makefile am bin 我正在尝试遵循以下教程 http www gnu org software aut
  • 在 Makefile.am 中调用 SED 获取源

    我有 C 代码 需要在编译之前对其进行 sed 处理 我如何将其放入Makefile am 我尝试了典型的 makefile 设置 目标似乎不存在 gentest cc SED i s FIND REPLACE gentest cc 如果您
  • JNI 和 Java:ant 调用 make 还是 make 调用 ant?

    我即将第一次进入 JNI Java 本机接口 的世界 以提供从平台特定的 C C 代码到 Java 的文件系统更改通知 除非有人推荐一些我错过的出色的图书馆来做这件事 作为 JNI 的新手 我已经设法找到了很多关于 JNI 接口方面和库生成
  • 使用 GCC 和 autotools 为各个源文件设置编译标志的最佳方法是什么?

    我需要使用自动工具禁用单个文件的优化标志 最好的方法是什么 您是指单个源文件还是单个可执行文件 禁用可执行文件的优化很简单 bin PROGRAMS myprog myprog SOURCES foo c bar c myprog CFLA
  • 无法关闭 gcc 优化器、automake 中的 Makefile

    我想得到ZBar http zbar sourceforge net 在调试会话中 我可以这样做 但我无法关闭优化器 因此我的调试会话意外地跳转 并且许多变量被标记为optimized out在 Eclipse Indigo 中 我在 Ub

随机推荐