当前位置: 技术问答>linux和unix
我这模块编译怎么通不过?
来源: 互联网 发布时间:2015-03-02
本文导语: 我初学模块编程,上来就碰了钉子. 例子: ----------- main.c ------------ #define MODULE #include #include int full; EXPORT_SYMBOL(full); /* 将 full export 出去 */ int init_module( void ) { printk( " Module is loadedn" ); return 0; } void cleanup...
我初学模块编程,上来就碰了钉子.
例子:
----------- main.c ------------
#define MODULE
#include
#include
int full;
EXPORT_SYMBOL(full); /* 将 full export 出去 */
int init_module( void )
{
printk( " Module is loadedn" );
return 0;
}
void cleanup_module( void )
{
printk( " Module is unloadedn" );
}
------------------------------------------------------
编译命令:
gcc -D__KERNEL__ -DMODVERSIONS -DEXPORT_SYMTAB -c
-I/usr/src/linux/include/linux -include
/usr/src/linux/include/linux/modversions.h
main.c
编译出错!
但不加入 # include 这行, 就可编译通过。
uaccess.h 定义了什么(是不是与用户访问权限有关).
另外, 在模块装载后,/var/log/message 日志中也无输出.
不知为什么,请帮忙...
例子:
----------- main.c ------------
#define MODULE
#include
#include
int full;
EXPORT_SYMBOL(full); /* 将 full export 出去 */
int init_module( void )
{
printk( " Module is loadedn" );
return 0;
}
void cleanup_module( void )
{
printk( " Module is unloadedn" );
}
------------------------------------------------------
编译命令:
gcc -D__KERNEL__ -DMODVERSIONS -DEXPORT_SYMTAB -c
-I/usr/src/linux/include/linux -include
/usr/src/linux/include/linux/modversions.h
main.c
编译出错!
但不加入 # include 这行, 就可编译通过。
uaccess.h 定义了什么(是不是与用户访问权限有关).
另外, 在模块装载后,/var/log/message 日志中也无输出.
不知为什么,请帮忙...
|
不能包含〈ASM/UACCESS。H〉(其中的函数用作内核空间和用户空间之间的数据传送)。因为模块不能嵌进任何的常规头文件。
可以把消息优先级改为〈1〉,然后在字符界面下装载,试试看行不?
可以把消息优先级改为〈1〉,然后在字符界面下装载,试试看行不?
|
gcc ... -I/usr/src/linux/include (没有最后的linux)
|
不太明白,我正在学习linux下的C ,请高手指点迷津!!!谢谢!!!
怎么样学比较的快!!!
怎么样学比较的快!!!