2015-07-10 97 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平台上的存在和编译进口来源如有必要。

相关问题