【问题标题】:How to reconfigure a large program for GNU Autotools如何为 GNU Autotools 重新配置大型程序
【发布时间】:2010-10-04 18:32:11
【问题描述】:

我有一个用 C 语言编写的相当大的程序。它跨越多个文件,并进行了一些重组以尝试弥补平台问题。具体来说,我有不同操作系统、体系结构和编译器的头文件,这些文件定义了它用来处理事情的宏。例如,-v 标志打印版本信息,包括构建它的编译器的名称,以及构建它的操作系统和架构。举个例子来说明它的重要性,程序可以创建一个 C 代码文件,如果你愿意,可以编译它 - 一个任务,它只需对构建 it 的任何编译器进行系统调用。

如果在您的系统上找到它,它还支持 GNU Readline 库(或 BSD Editline 库 - 相同),如果您不支持它,它还支持没有所有漂亮的 Readline 功能(纯 ANSI)的等价物拥有它。

底线是,我不能去掉任何与平台相关的部分,因为有几个函数在很大程度上取决于你所拥有的操作系​​统/架构/编译器。我还想为拥有它的人提供良好的功能。我希望人们使用标准的./configuremakemake install 界面下载和安装它。

目前我正在为configure 使用一个抱歉的手工 shell 脚本,它从头开始创建 Makefile,并根据您的操作系统/架构/编译器确定要包含哪些头文件。我想要一个更有效的方法,并且我想使用一个使用 GNU Autotools 的更标准的构建系统。这样我就知道我所做的工作可以在其他人的计算机上运行,​​而无需在他们的计算机上进行测试。

我的问题是: 1) 如何从自制构建系统切换到 GNU Autotools? 2) GNU Autotools 入门有哪些好的教程? 3) 我怎样才能使这个过程相对轻松?

【问题讨论】:

    标签: autotools autoconf automake


    【解决方案1】:

    这个链接是我在阅读这篇文章后用谷歌搜索的。它回答了我关于如何创建 ./configure 文件的问题。

    The GNU Build System

    【讨论】:

      【解决方案2】:

      首先,您可以在项目的根目录中运行autoscan。它将扫描项目树并生成 configure.scan,同时尝试检测不可移植的功能。然后将其重命名为 configure.ac,对其进行相应的编辑并写入 Makefile.am 文件。

      我建议您在 GNU autotools 手册中查看此过程(尤其是 autoscan)以了解详细信息。它会减少您的工作量,但至少您不会从头开始创建这些文件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        • 1970-01-01
        • 2023-03-27
        • 2011-08-09
        • 1970-01-01
        相关资源
        最近更新 更多