将 getopt_long() 与我自己的代码捆绑在一起?
Bundling getopt_long() with my own code?
我在 github 上有自己的 C 项目。我想通过使用 GNU getopt_long()
(它有自己的 git 存储库)添加长选项支持。我相信有 4 种方法可以做到这一点:
- 使用 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 way"吗?
经过更多的谷歌搜索,我发现 the official GNU answer。
简而言之,有两种推荐方法:
使用 Gnulib("new" 方式)
使用 gnulib-tool
命令,通过对 configure.ac
和 Makefile.am
文件进行一些调整,导入 getopt
将其编译为 GNU 库的子集.
使用 getopt_long
来源("old" 方式)
导入 getopt.c
、getopt1.c
和 gnugetopt.h
的 getopt_long
源并使用 adl_func_getopt_long.m4
宏来测试 [=14] 是否存在=] 在平台上,仅在必要时编译导入的源代码。
我在 github 上有自己的 C 项目。我想通过使用 GNU getopt_long()
(它有自己的 git 存储库)添加长选项支持。我相信有 4 种方法可以做到这一点:
- 使用 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 way"吗?
经过更多的谷歌搜索,我发现 the official GNU answer。
简而言之,有两种推荐方法:
使用 Gnulib("new" 方式)
使用 gnulib-tool
命令,通过对 configure.ac
和 Makefile.am
文件进行一些调整,导入 getopt
将其编译为 GNU 库的子集.
使用 getopt_long
来源("old" 方式)
导入 getopt.c
、getopt1.c
和 gnugetopt.h
的 getopt_long
源并使用 adl_func_getopt_long.m4
宏来测试 [=14] 是否存在=] 在平台上,仅在必要时编译导入的源代码。