昨天遇到一个编译报错:
osal_linux.h: error:warning: implicit declaration of function ‘usleep’ ;disyou mean 'sleep'?[-Wimplicit-function-declaration]
该问题是由于https://blog.csdn.net/yuangc/article/details/122318786引起的。
继续查看手册:
man usleep
...
usleep():
Since glibc 2.12:
(_XOPEN_SOURCE >= 500) && ! (_POSIX_C_SOURCE >= 200809L)
|| /* Glibc since 2.19: */ _DEFAULT_SOURCE
|| /* Glibc <= 2.19: */ _BSD_SOURCE
Before glibc 2.12:
_BSD_SOURCE || _XOPEN_SOURCE >= 500
要求glibc 2.10之后的 _POSIX_C_SOURCE不能 >= 200809L,而open_memstream又要大于200809L。这两者冲突了。
幸好后面有或者:/* Glibc since 2.19: */ _DEFAULT_SOURCE,
因此configure添加定义_DEFAULT_SOURCE:
add_cflag -D__DEFAULT_SOURCE
测试OK。