2014-07-07 5 views
9

ich den Eindruck, ich meine C-Compiler C11 unterstützt, da es die -std = c11 Flagge akzeptiert,uchar.h Datei nicht auf OS X gefunden 10,9

$ cc --version 
Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn) 
Target: x86_64-apple-darwin13.3.0 
Thread model: posix 

und uchar.h ist Teil der C11-Standard, so würde ich dieses Programm erwarten zu kompilieren,

$ cat /tmp/esc.c 
#include <uchar.h> 

int main(void) {} 

aber

$ cc /tmp/esc.c 
/tmp/esc.c:1:10: fatal error: 'uchar.h' file not found 
#include <uchar.h> 
     ^
1 error generated. 

ich versuchte, die uchar.h Datei gefunden, aber die einzigen Treffer auf meinem System sind von iPhone SDK weirdly,

$ locate uchar.h 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk/usr/include/unicode/uchar.h 
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/include/unicode/uchar.h 

Wie kann ich uchar.h auf OS X 10.9 verwenden? Muss ich einen neuen Compiler herunterladen oder missbrauche ich den, den ich habe?

+0

Ich weiß nicht, OSX, aber ich hatte ähnliche Probleme mit C11-Unterstützung machen aligned_alloc und v Verschiedene PRI-Makros für uint8_t und uint64_t verfügbar. Hast du versucht, '#include ' 'nach der Einstellung' #define __STDC_FORMAT_MACROS' zu verwenden, um Sachen wie uint8_t zu bekommen, die ich verwende. '#define _ISOC11_SOURCE // C11 aligned_alloc von posix_memalign (3)' oder '-D_ISOC11_SOURCE'? – Rob11311

+1

Ah, unter Linux sehe ich 'uchar.h' ist über Unicode-Unterstützung nicht vorzeichenlose char Probleme, die ich nur unter Linux, derzeit nicht Cygwin64 habe. Also ich denke, es ist ein tieferes Problem über Clib Unicode-Unterstützung. – Rob11311

+0

Auf UBUNTU finde ich 'ucahr.h' auf'/usr/include/uchar.h' möge es dir helfen, führe 'locate.uch' auf deinem Rechner aus – EsmaeelE

Antwort

0

Try this:

cc -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/include -L/usr/lib -L/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/lib -licucore /tmp/esc.c 

Wenn es nicht funktioniert, schlage ich vor, dass Sie "International Components for Unicode" installieren:

1) Install Macports for OS X 
2) Run this in Terminall app: "port install icu" 

Es gibt Ihnen alle benötigten Komponenten für Unicode, einschließlich "/opt/local/include/unicode/uchar.h"

Dann entsprechende Optionen für cc finden:

/opt/local/bin/icu-config --cppflags-searchpath --ldflags --ldflags-icuio 

Welche gibt Ihnen:

-I/opt/local/include -L/opt/local/lib -licui18n -licuuc -licudata -licuio 

So können Sie Ihr Programm kompilieren wie:

cc -I/opt/local/include -L/opt/local/lib -licui18n -licuuc -licudata -licuio /tmp/esc.c 

Ich bin nicht sicher, aber wahrscheinlich von ihm icu bekommen ist Webseite gibt es auch für Sie arbeiten könnte:

http://site.icu-project.org/download