构建RTEMS-4.11时出现错误,使用配置参数“--enable-posix” 在源文件“posix/src/prwlockinit.c”中
if ( *rwlock == PTHREAD_RWLOCK_INITIALIZER ) {
eno = pthread_rwlock_init( rwlock, NULL );
} else {
eno = 0;
}
日志显示“cpukit/posix/src/prwlockinit.c:42:19: error: 'PTHREAD_RWLOCK_INITIALIZER' undeclared (first use in this function)”
当我在 rtems 源目录中使用 shell 命令:grep -r "PTHREAD_RWLOCK_INITIALIZER"时,我对这个宏声明一无所知。
如何使用“--enable-posix”而不是“--disable-posix”来解决这个问题?
最佳答案
您需要使用最新的编译器。问题是在您的 gcc 中编译的 libc (newlib) 已过时。 PTHREAD_RWLOCK_INITIALIZER 于 2013 年 1 月添加。
最好的办法是使用 RTEMS Source Builder为您使用的任何版本的 RTEMS 创建最新的编译器。对于当前 RTEMS 的“主”分支,版本为 4.11。
关于c - "PTHREAD_RWLOCK_INITIALIZER undeclared"构建RTEMS错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26677964/