2015-07-10 96 views
4

我在github上有自己的C項目。我想通過使用GNU getopt_long()(它有它自己的git存儲庫)來添加長期選項支持。我相信有4種方法可以做到這一點:用我自己的代碼捆綁getopt_long()?

  1. 使用git submodule
  2. 使用git subtree
  3. 將當前(2.22.6)快照的源導入到我自己的git存儲庫中。
  4. 導入只有getopt_long()源文件getopt.c,getopt1.cgnugetopt.h

1和2的優點是我跟蹤getopt_long()。 3和4的優點是,如果getopt_long()的git存儲庫移動,它不會損壞我的存儲庫,這樣做更簡單。

有沒有推薦的「GNU方式」來做到這一點?

+0

爲什麼要導入源而不使用庫? – alk

+2

因爲它不是在所有平臺上。 –

回答

2

經過多一點Googl'ing,我發現the official GNU answer

簡單地說,有兩種推薦方式:

使用Gnulib(以下簡稱「新」的方式)

使用gnulib-tool命令,一個進口getopt通過進行編譯它爲GNU庫的一個子集很少調整到一個人的configure.acMakefile.am文件。

使用getopt_long源(「舊」的方式)

進口的getopt_long來源getopt.cgetopt1.cgnugetopt.h並使用adl_func_getopt_long.m4宏只是測試的getopt_long平臺上的存在和編譯進口來源如有必要。

相關問題