Foo*_*man 5 macos xcode swift metal
我安装了Xcode 7.3,并且swiftc命令行编译器声明它是版本2.2,但它配置为以macos10.9 sdk为目标:
> swiftc -v
Apple Swift version 2.2 (swiftlang-703.0.18.8 clang-703.0.31)
Target: x86_64-apple-macosx10.9
Run Code Online (Sandbox Code Playgroud)
FWIW我正在运行OS X 10.11.6.在此配置中使用此swiftc编译Metal API代码会导致错误,例如:
src/Application.swift:76:29: error: 'MTLBuffer' is only available on OS X 10.11 or newer
var _mtlPositionBuffer : MTLBuffer?
Run Code Online (Sandbox Code Playgroud)
最后,为了解决这个问题,我编写了标志:
-sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk
Run Code Online (Sandbox Code Playgroud)
无济于事.如何更改swiftc命令行编译器的sdk/platform目标?
看看Xcode在编译swift代码时所做的事情,它使用以下CLI标志,这似乎很好地解决了这个问题:
-target x86_64-apple-macosx10.11
Run Code Online (Sandbox Code Playgroud)