当前位置: 技术问答>linux和unix
一个很郁闷的警告信息~~~怎么解决掉它呢?
来源: 互联网 发布时间:2016-09-26
本文导语: 就是使用 atomic_set 和atomic_read的时候,我是添加了include的 但是会警告 atomic_set隐式引用,但是不会警告atomic_read 虽然无大碍 但是十分让我费解 他们的确同时定义在atomic.h中的阿 | asm-...
就是使用 atomic_set 和atomic_read的时候,我是添加了include的
但是会警告 atomic_set隐式引用,但是不会警告atomic_read
虽然无大碍 但是十分让我费解 他们的确同时定义在atomic.h中的阿
但是会警告 atomic_set隐式引用,但是不会警告atomic_read
虽然无大碍 但是十分让我费解 他们的确同时定义在atomic.h中的阿
|
asm-generic/atomic.h
#define atomic_read(v) ((v)->counter)
#define atomic_set(v, i) (((v)->counter) = (i))
既然是宏定义,怎么可能有警告呢?很奇怪。如果没有发生宏替换,难道链接的时候不会出错吗?
把警告贴出来看看?
有个笨办法,把编译命令行加上-E,看看预处理的结果是什么样的,也看看实际包含的头文件的内容是不是和我们想象的一样。
#define atomic_read(v) ((v)->counter)
#define atomic_set(v, i) (((v)->counter) = (i))
既然是宏定义,怎么可能有警告呢?很奇怪。如果没有发生宏替换,难道链接的时候不会出错吗?
把警告贴出来看看?
有个笨办法,把编译命令行加上-E,看看预处理的结果是什么样的,也看看实际包含的头文件的内容是不是和我们想象的一样。
|
应该定义了内核宏__KERNEL__,才可以引用这些调用. 是否不是编译内核模块?没有定义这个宏?