2016-08-01 7 views
3

Ich versuche herauszufinden, wie man diesen Codeschnipsel auf macOS Sierra kompiliert.Kompiliere Objective-C mit clang auf macOS Sierra

#import <Foundation/Foundation.h> 

int main() { 
    NSLog(@"Hello World"); 
    return 0; 
} 

Auf El Capitan konnte ich mit diesem Befehl kompilieren.

Allerdings, wenn ich diesen Befehl auf Sierra versuchen, sehe ich diese Fehler.

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; 

Dies ist die Version von clang, die ich benutze.

$ 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 

Ich habe Xcode Version 7.3.1 (7D1014) und Xcode Version 8.0 beta 4 (8S188o) installiert. Die Version von Sierra I ist 10.12 Beta (16A254g).

Hinweis: Ich möchte dies im Terminal mit clang kompilieren, nicht innerhalb von Xcode.

+0

Update auf Xcode 8? – matt

+0

Ich hatte das gleiche Symptom, aber ein Teil der Ursache für mich war, dass ich immer noch ein handgebautes (älteres) llvm und clang Repository in meinem $ PATH verwendete, also bekam ich diesen Fehler mit einer neuen Installation von Xcode, aber einem älteren Clang - Shooting der Fuß. Ich wollte diesen älteren llvm/clang für eine Weile behalten und die einfachste Lösung für mich war, den Befehl gcc anstelle von clang für die Zeiten zu verwenden, die ich mit dem Foundation Framework kompilieren wollte. – WeakPointer

Antwort

7

Stellen Sie sicher, dass Sie über die Xcode 8-Version der Befehlszeilentools sele verfügen cted.

enter image description here

-1

Objective-C hat in der neuen Version von Clang und Xcode Unterstützung für Klasseneigenschaften erhalten. Hier ist und Artikel, wo Sie einige nützliche Informationen finden können: Objective-C Class Properties.

Um dieses Problem zu lösen, sollten Sie einfach Xcode installieren 8.

UPD

vergessen zu erwähnen:

Nach der Installation sicherstellen, dass Sie Kommandozeilen-Tools auf den jüngsten Xcode eingeschaltet haben:

$ 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

Hm. Ich habe gerade Xcode 8 Beta installiert und sehe immer noch das gleiche Problem. Gibt es eine andere Flagge, die ich zum Klängen weitergeben sollte? – 425nesp

Verwandte Themen