我想弄清楚如何在macOS Sierra上編譯這段代碼。在macOS上編譯Objective-C與clang Sierra
#import <Foundation/Foundation.h>
int main() {
NSLog(@"Hello World");
return 0;
}
在El Capitan上,我可以用這個命令編譯。
clang -x objective-c -framework Foundation main.m
但是,當我在Sierra上嘗試該命令時,我看到了這些錯誤。
In file included from main.m:1:
In file included from /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h:10:
In file included from /System/Library/Frameworks/Foundation.framework/Headers/NSArray.h:5:
/System/Library/Frameworks/Foundation.framework/Headers/NSObject.h:44:12: error: unknown property attribute 'class'
@property (class, readonly) BOOL supportsSecureCoding;
這是我正在使用的clang
的版本。
$ clang -v
Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin16.0.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
我的Xcode版本7.3.1(7D1014)和安裝的Xcode版本8.0的β4(8S188o)。 Sierra I的版本是10.12 beta(16A254g)。
注意:我想用clang
在終端中編譯這個,而不是在Xcode裏面。
更新到Xcode 8? – matt
我有同樣的症狀,但部分原因是我仍然在我的$ PATH中使用一個手工構建(舊)llvm和clang存儲庫,所以我得到了一個新的Xcode安裝錯誤,但一個老的叮噹聲 - 射擊自己腳。我想保留這個較老的llvm/clang一段時間,對我來說最簡單的解決方案就是在我想用Foundation框架進行編譯的那些時候使用gcc命令而不是clang。 – WeakPointer