autoscan
产生了一系列功能检查(AC_FUNC_*
和AC_CHECK_FUNCS
)和AC_CHECK_HEADERS
。现在我需要引入gnulib代码。我是否只是尝试导入autoscan识别的每个函数和标题?其中一半未显示在gnulib-tool --list
输出中。或者我等到./configure
在某个平台上失败了?
答案 0 :(得分:1)
我的建议是ignore autoscan entirely,而是尝试找出您定位的平台。
特别是autoscan将尝试为自1990年以来在每个平台上可用的功能添加测试,但可能在非SysV OS上缺失。
从基础平台目标(例如C99和最新的POSIX)开始,然后找出您想要定位的其他操作系统以及它们缺少的内容。
请勿尝试覆盖您无法访问的操作系统的基础,可能您实际上并不知道他们需要构建什么,更不用说运行了。
完全披露:多年来我已经更改了my opinion on gnulib,并且如果可能的话,不建议再使用它。
答案 1 :(得分:0)
有两种方法可以确定您可能需要哪个gnulib模块列表:
nm
)。gnulib-tool
导入all the POSIX header file modules,然后将-DGNULIB_POSIXCHECK
添加到CFLAGS,编译您的包,并分析生成的警告。此外,仅为旧平台存在一些gnulib覆盖。您可以阅读list of what each override fixes,并自行判断。