簡體   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