我在
github上有自己的C项目.我想通过使用GNU getopt_long()(它有自己的git存储库)来添加长选项支持.我相信我有四种方法可以做到这一点:
>使用git submodule.
>使用git subtree.
>将当前(2.22.6)快照的源导入我自己的git存储库.
>仅导入getopt.c,getopt1.c和gnugetopt.h的getopt_long()源文件.
1和2的优点是我跟踪getopt_long(). 3和4的优点是,如果getopt_long()的git存储库移动,它将不会破坏我的存储库,它更容易做到.
有没有推荐的“GNU方式”来做到这一点?
最佳答案 经过一段时间的Googl’ing,我找到了
the official GNU answer.
简而言之,有两种推荐方法:
使用Gnulib(“新”方式)
使用gnulib-tool命令,通过对一个configure.ac和Makefile.am文件进行一些调整,导入getopt将其编译为GNU库的子集.
使用getopt_long源(“旧”方式)
导入getopt.c,getopt1.c和gnugetopt.h的getopt_long源,并使用adl_func_getopt_long.m4宏测试平台上是否存在getopt_long,并仅在必要时编译导入的源.