5

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

如果在您的系统上找到它,它还支持 GNU Readline 库(或 BSD Editline 库——同样的东西),如果您没有它,它还支持没有所有纯 ANSI 的 Readline 功能的等价物。

最重要的是,我不能去掉任何依赖于平台的位,因为几个函数在很大程度上取决于你拥有的操作系​​统/架构/编译器。我还想为拥有它的人提供良好的功能。我希望人们下载并安装它具有标准./configure和界面。makemake install

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

我的问题是,对于那些努力完成所有这些的人(谢谢!),我的问题是:1)我如何从自制构建系统切换到 GNU Autotools?2) 有哪些很好的 GNU Autotools 入门教程?3)我怎样才能使这个过程相对轻松?

4

2 回答 2

9

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

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

于 2009-02-01T10:16:52.440 回答
1

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

GNU 构建系统

于 2009-03-03T19:52:51.737 回答