【发布时间】:2022-01-21 04:42:44
【问题描述】:
我正在尝试在较新版本的 MacOS 和 Xcode 下构建 apcupsd 包,但当前版本的 apcupsd 提供的 configure 脚本在 Xcode 12.4 下中断(尽管它在 Xcode 11.2 下工作)。
错误是gethostbyname_r 是必需的。现在,configure 测试这个功能,通常它会适应不提供它的系统。然而,在较新的 Xcode 版本中,configure 只是以错误退出。我认为这与 Apple 强制设置 -Werror 有关。我发现我可以通过在configure 中注释掉损坏的测试,然后运行它并明确传递configure 应该设置的标志来获得成功的构建。但这不是很令人满意。
是否有一种通用方法可以将覆盖传递给编译器的configure?我尝试在CPPFLAGS 和CFLAGS 环境中为configure 设置-Wno-error,但configtest 程序似乎忽略了这些。似乎正在发生的事情是 configure 看到 gethostbyname_r 不存在并将其设置为 no 但后来仍然对其进行测试。我只是想知道是否有标志或其他东西可以克服这个错误,因为在我看来,无论 Apple 在 11.2 版之后破坏(或修复)Xcode 所做的一切都会破坏很多人的项目。
我正在寻找不涉及修改程序源或 Autotools 输入文件的解决方案。项目手册在这方面没有帮助。
作为更新:apcupsd 列表中的某个人告诉我,此问题已在更高版本的 Xcode 中修复。我还没有尝试过,但是当我这样做时,如果事实证明是这样,我会发布后续跟进
【问题讨论】:
-
Apple 在 Xcode 12 中将
-Werror设为默认值时破坏了许多项目的构建,但我不认为 Autotools 是向量之一。
标签: xcode macos macos-catalina