'CLOCK_REALTIME' undeclared (first use in this function)
raspberry pi でコンパイルオプションに-std=c99を追加した。
'CLOCK_REALTIME' undeclared (first use in this function)
location: d:\SysGCC\firmware-master\opt\vc\include\interface\vcos\pthreads\vcos_platform.h VCOS_INLINE_IMPL VCOS_STATUS_T vcos_semaphore_wait_timeout(VCOS_SEMAPHORE_T *sem, VCOS_UNSIGNED timeout) { struct timespec ts; int ret; if (clock_gettime(CLOCK_REALTIME, &ts) == -1) <==これが宣言されないようだ。 return VCOS_EINVAL; ts.tv_sec += timeout/1000; ts.tv_nsec += (timeout%1000)*1000*1000; if (ts.tv_nsec > 1000000000) { ts.tv_sec++; ts.tv_nsec -= 1000000000; } while (1) { ret = sem_timedwait( sem, &ts ); if (ret == 0) { return VCOS_SUCCESS; } else { if (errno == EINTR) { continue; } else if (errno == ETIMEDOUT) { return VCOS_EAGAIN; } else { vcos_assert(0); return VCOS_EINVAL; } } } }
以下のdefineでは、治らなかった。
#define _POSIX_C_SOURCE >= 199309L
- std=gnu99に変更したところ、コンパイルできた。
この問題を解消するには、-std=c99ではなく、-std=gnu99とします。