2016-08-01 149 views
3

我想弄清楚如何在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裏面。

+0

更新到Xcode 8? – matt

+0

我有同樣的症狀,但部分原因是我仍然在我的$ PATH中使用一個手工構建(舊)llvm和clang存儲庫,所以我得到了一個新的Xcode安裝錯誤,但一個老的叮噹聲 - 射擊自己腳。我想保留這個較老的llvm/clang一段時間,對我來說最簡單的解決方案就是在我想用Foundation框架進行編譯的那些時候使用gcc命令而不是clang。 – WeakPointer

回答

7

確保您擁有Xcode 8版本的命令行工具sele反恐執行局。

enter image description here

-1

Objective-C在Clang和Xcode的新版本中獲得了對類屬性的支持。這裏是和文章,你可能會發現一些有用的信息:Objective-C Class Properties

爲了解決這個問題,您應該簡單地安裝的Xcode 8

UPD

忘了提:

安裝後,請確保您已切換命令行工具近期的Xcode:

$ clang --version 
Apple LLVM version 7.3.0 (clang-703.0.31) 
Target: x86_64-apple-darwin15.5.0 
Thread model: posix 
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin 
$ xcode-select -print-path 
/Applications/Xcode.app/Contents/Developer 
$ sudo xcode-select -switch /Applications/Xcode-beta.app/Contents/Developer/ 
$ xcode-select -print-path 
/Applications/Xcode-beta.app/Contents/Developer 
$ clang --version 
Apple LLVM version 8.0.0 (clang-800.0.33.1) 
Target: x86_64-apple-darwin15.5.0 
Thread model: posix 
InstalledDir: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin 
+0

嗯。剛剛安裝了Xcode 8測試版,我仍然看到相同的問題。有沒有其他的標誌我應該傳給叮噹聲? – 425nesp