2013-03-28 9 views
7

Mam wzorem program, który nie trafia do kompilacji z -std = c99GCC kompilacji nie powiedzie się z Pthread i opcji std = c99

każda pomoc mile widziane

#include <pthread.h> 
int main(void) { 
    pthread_rwlock_t myLock; 
    return 0; 
} 

output of the two compiles: 
gcc pthread_test.c 
[[email protected] src]$ gcc pthread_test.c 
[[email protected] src]$ 

gcc -std=c99 pthread_test.c[[email protected] src]$ gcc -std=c99 pthread_test.c 
pthread_test.c: In function ‘main’: 
pthread_test.c:5:2: error: unknown type name ‘pthread_rwlock_t’ 
[[email protected] src]$ 
+1

Co z '-std = gnu99'? –

Odpowiedz

20

Zamki odczytu są niestandardowym i są warunkowo zdefiniowane w <pthread.h>.

-std=c99 prosi o ścisłe przestrzeganie Standardu (w miarę możliwości) oraz wyłącza rozszerzenia językowe i dodatkowe biblioteki.

Jeśli zamiast tego przekazujesz std=gnu99, otrzymasz domyślną wersję kompilatora C99, a także wszystkie rozszerzenia i dodatki dostarczane przez gcc.