无法为iOS编译yaml.swift(适用于OSX)

时间:2015-01-06 22:09:03

标签: ios macos swift

所以我必须将一些YML文件导入到我最新的swift项目中,我发现这个可爱的库(https://github.com/behrang/yaml.swift)看起来效果很好。问题是,它是一个iOS项目,默认情况下yaml.swift为OSX编译。

没有太大的交易,我在makefile中更改了这一行

sdk = $$(xcrun --show-sdk-path --sdk macosx)

到这个

sdk = $$(xcrun --show-sdk-path --sdk iphoneos)

一旦我进行此切换,我在编译时会遇到各种错误。

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/include/mach/ndr.h:37:10: note: in file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/include/mach/ndr.h:37:
#include <libkern/OSByteOrder.h>
         ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/usr/include/libkern/OSByteOrder.h:45:10: error: 'libkern/machine/OSByteOrder.h' file not found
#include <libkern/machine/OSByteOrder.h>
         ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/shims/shims.h:13:10: error: could not build module 'Darwin'
#include <stddef.h>        // for size_t
         ^
<unknown>:0: error: could not build Objective-C module 'SwiftShims'
make: *** [build/libyaml.dylib] Error 1

这是最后几行,但这可以追溯到几千行。我找不到任何东西似乎与我试图编译的库有关。这似乎是SDK的一个问题。我尝试过挖掘并查看该库是否依赖于OSX框架,但它导入的唯一内容是Foundation

任何想法可能与错误有什么关系?

到目前为止我提出的是,SwiftShims是一个快速模块(错误说不是Objective-C)。在SwiftShims.swift文件的顶部,它似乎导入了一些Darwin / C模块。也许这就是问题?但是SwiftShims并没有被导入到这个模块的任何swift文件中。我真的迷失在这里,我很感激我能得到的任何帮助!

1 个答案:

答案 0 :(得分:0)

您还需要告诉swift编译器为运行模拟器的x86 cpu构建。在make文件中,您还需要添加:

-target x86_64-apple-ios8.0

作为libyml.dylib部分下的swiftc选项之一。