Xcode 9 模块循环依赖:达尔文 -> std -> 达尔文



自从在Xcode 9(以前8.2)中打开我的项目以来,几个静态库和框架目标无法使用大量错误编译。此环状依赖性错误始终在顶部。

一个例子是libzip的静态库目标。问题源于系统的Zlib库的单个#include:

#include <zlib.h>

大多数目标可以通过禁用模块使用构建设置启用模块(C和Objective-c)。。。

我有一个swift/c框架来定义几个模块,这不是解决方案。

许多错误与tgmath.h有关,这在某种程度上臭名昭著,对于使用模块播放不好。我不确定为什么还包括TGMATH - 它在Darwin Modulemap中被明显明显。我很想检查<module-includes>:28,但我不确定如何。

这是汇编误差的示例。有人知道如何在Xcode 9中解决此问题吗?

While building module 'zlib' imported from /Users/.../lib/zipint.h:40:
While building module 'Darwin' imported from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stddef.h:46:
While building module 'std' imported from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.0.sdk/usr/include/tgmath.h:31:
In file included from <module-includes>:1:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/ctype.h:39:15: fatal error: cyclic dependency in module 'Darwin': Darwin -> std -> Darwin
#include_next <ctype.h>
              ^
1 error generated.
While building module 'zlib' imported from /Users/.../lib/zipint.h:40:
While building module 'Darwin' imported from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stddef.h:46:
In file included from <module-includes>:28:
In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/9.0.0/include/tgmath.h:37:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.0.sdk/usr/include/tgmath.h:31:10: fatal error: could not build module 'std'
#include <complex.h>
 ~~~~~~~~^
2 errors generated.
While building module 'zlib' imported from /Users/.../lib/zipint.h:40:
In file included from <module-includes>:1:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.0.sdk/usr/include/zlib.h:34:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.0.sdk/usr/include/zconf.h:247:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/stddef.h:46:15: fatal error: could not build module 'Darwin'
#include_next <stddef.h>
 ~~~~~~~~~~~~~^
3 errors generated.
In file included from /Users/.../lib/zip_get_compression_implementation.c:36:
/Users/.../lib/zipint.h:40:10: fatal error: could not build module 'zlib'
#include <zlib.h>
 ~~~~~~~~^
4 errors generated.

最终问题是旧的自定义标题搜索路径。它在SDK中有一个明确的参考,XcodeDefault.xctoolchain/usr/include/c++/v1。包括搜索路径中的那些标题正在弄乱依赖周期保护。

最新更新