繁体   English   中英

我应该使用automake / autoconf来分发小型ansi C应用程序吗?

[英]Should I use automake/autoconf for distribution of a small ansi C app?

我有一个小型ANSI C应用程序,可以在不同的测试编译器和平台下进行干净编译。 它不使用任何预处理器开关或外部依赖项,makefile就像这样:

myapp: *.c
    gcc *.c -Wall -o myapp

如果我想以源代码形式发布这个项目尽可能便携,我应该使用automake / autoconf来包装吗? 这实际上是否会增加可移植性,还是它可以随身携带?

我唯一能想到的是它会自动选择系统编译器,但它也会增加很多复杂性。 这值得么?

我怀疑这是值得的。 在具有可用的C编译器的每个平台上都应支持没有任何特定于OS的调用的ANSI C,并且向此添加automake / autoconf使得维护可能不如当前那么令人愉快。

但是,您可以在makefile中使用$(CC)变量来自动使用系统的编译器:

myapp: *.c
    $(CC) *.c $(CFLAGS) -o myapp

您不需要指定编译规则,因此不需要$(CC)$(CFLAGS)$(LDFLAGS) ,因为make有一个隐式规则来从C源生成可执行文件。

保持Makefile简单:

all: myapp

myapp: *.c

clean:
    rm -f myapp

.PHONY: all clean

顺便说一下,最好指定一个源文件列表,因为不能保证你的源是该目录中唯一的C文件

虽然您可能觉得在功能方面获得的收益很少,但您可能仍然希望考虑这些原因:

  • 使用autoconf是分发C代码的一种非常常见的方式。 因此,大多数人应该习惯使用它进行构建和安装,这使用户更容易。
  • 一旦你已经把在得到的autoconf处理项目的努力,它将使如果明显更容易,当想使用它的一些附加功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM