所以我必须将一些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文件中。我真的迷失在这里,我很感激我能得到的任何帮助!
答案 0 :(得分:0)
您还需要告诉swift编译器为运行模拟器的x86 cpu构建。在make文件中,您还需要添加:
-target x86_64-apple-ios8.0
作为libyml.dylib部分下的swiftc选项之一。