Оставам с впечатлението, че моят C компилатор поддържа C11, тъй като приема флага -std=c11,
$ 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
и uchar.h
е част от стандарта C11, така че очаквам тази програма да се компилира,
$ cat /tmp/esc.c
#include <uchar.h>
int main(void) {}
Но
$ cc /tmp/esc.c
/tmp/esc.c:1:10: fatal error: 'uchar.h' file not found
#include <uchar.h>
^
1 error generated.
Опитах се да намеря файла uchar.h, но единствените попадения в моята система са от iPhone SDK, странно,
$ 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
Как мога да използвам uchar.h
на OS X 10.9? Ще трябва ли да изтегля нов компилатор или злоупотребявам с този, който имам?
#include <inttypes.h>
след настройка#define __STDC_FORMAT_MACROS
, за да получите дефинирани неща като uint8_t, което използвам.#define _ISOC11_SOURCE // C11 aligned_alloc from posix_memalign(3)
или-D_ISOC11_SOURCE
? - person Rob11311   schedule 07.07.2014uchar.h
е за поддръжка на unicode, а не за проблеми с unsigned char, които имам само под Linux, а не Cygwin64 в момента. Така че предполагам, че това е по-дълбок проблем относно поддръжката на clib unicode. - person Rob11311   schedule 07.07.2014ucahr.h
на/usr/include/uchar.h
може ли да ви помогне, стартирайтеlocate uchar.h
на вашата машина - person EsmaeelE   schedule 27.08.2017uchar.h
на вашата машина и второ, ако не можете да го намерите или използвате, те предпочитат да използватunsigned short
вместо тип данни в заглавката нещо катоchar16_t
- person EsmaeelE   schedule 27.08.2017uchar.h
uchar.h - person EsmaeelE   schedule 27.08.2017<uchar.h>
, нито<threads.h>
. Той няма 4 функции, декларирани в<uchar.h>
или други функции, използващиchar16_t
илиchar32_t
. Кодът, пренесен към Mac, който се нуждае от тези съоръжения, трябва или да бъде пренаписан, за да се избегне използването им, или да бъде поддържан от условно компилиран код, който предоставя необходимите съоръжения. - person Jonathan Leffler   schedule 13.03.2020