当前位置: 技术问答>linux和unix
为什么我有些函数和宏定义没法使用?
来源: 互联网 发布时间:2017-05-06
本文导语: 环境如下: Linux forhu-debian 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux gcc version 4.7.2 (Debian 4.7.2-5) 我发现有些函数没法使用,比如说我要使用nanosleep,已经include了time.h了,但是编译器报错如下: test.c:17:18: er...
环境如下:
我发现有些函数没法使用,比如说我要使用nanosleep,已经include了time.h了,但是编译器报错如下:
但是我的代码如下:
等等诸如此类的问题,我看头文件,它需要一个宏定义:
__USE_POSIX199309
还有其他的情况我也碰到:
__USE_BSD
__USE_MISC
请问各位,我碰到这种情况该怎么解决?
Linux forhu-debian 3.2.0-4-686-pae #1 SMP Debian 3.2.51-1 i686 GNU/Linux
gcc version 4.7.2 (Debian 4.7.2-5)
我发现有些函数没法使用,比如说我要使用nanosleep,已经include了time.h了,但是编译器报错如下:
test.c:17:18: error: storage size of ‘req’ isn’t known
test.c:17:22: error: storage size of ‘rem’ isn’t known
test.c:38:3: warning: implicit declaration of function ‘nanosleep’ [-Wimplicit-function-declaration]
make: *** [main.o] Error 1
但是我的代码如下:
6 #include
...
17 struct timespec req,rem;
18 req.tv_sec=0;
19 req.tv_nsec=10000000;
...
38 nanosleep(&req,&rem);
等等诸如此类的问题,我看头文件,它需要一个宏定义:
__USE_POSIX199309
还有其他的情况我也碰到:
__USE_BSD
__USE_MISC
请问各位,我碰到这种情况该怎么解决?
|
难道楼主用了gcc -std=c89或者 gcc -std=c99或者gcc -ansi
试试改为
gcc -std=gnu99
试试改为
gcc -std=gnu99
|
引用time.h时这样引用就ok了
#define __need_timespec
#include
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。