GCC编译失败,pthread和选项std = c99

我有一个示例程序无法编译-std = c99

任何帮助赞赏

#include <pthread.h> int main(void) { pthread_rwlock_t myLock; return 0; } output of the two compiles: gcc pthread_test.c [brad@fedora17onbradsmacpro src]$ gcc pthread_test.c [brad@fedora17onbradsmacpro src]$ gcc -std=c99 pthread_test.c[brad@fedora17onbradsmacpro 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' [brad@fedora17onbradsmacpro src]$ 

读写锁定是非标准的,并在<pthread.h>中有条件地定义。

-std=c99请求严格遵守标准(尽可能),并禁用语言扩展和额外的库。

如果您改为传递std=gnu99 ,则将获得C99编译器版本以及默认情况下由gcc提供的所有扩展和额外功能。