LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 816|回复: 2

系统更新后make出错

[复制链接]
发表于 2008-3-8 14:52:03 | 显示全部楼层 |阅读模式
我用的校园网需要通过Dr.com登录上网,上次我更新系统后重新安Dr.com就能正常使用了,今天我又更新了一下系统,好像内核从2.6.23.15-137.fc8升级到了2.6.24.3-12.fc8然后我也像上次一样需要重装Dr.com,但make时就出现了下面的错误提示,希望弟兄们帮我看看怎么解决这个问题。


[wrsg@redapple ~]$ cd drcom-1.3.7
[wrsg@redapple drcom-1.3.7]$ make
make -C drcomc
make[1]: Entering directory `/home/wrsg/drcom-1.3.7/drcomc'
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o drcomc.o drcomc.c
gcc   drcomc.o   -o drcomc
make[1]: Leaving directory `/home/wrsg/drcom-1.3.7/drcomc'
make -C drcomd
make[1]: Entering directory `/home/wrsg/drcom-1.3.7/drcomd'
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o drcomd.o drcomd.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o daemon.o daemon.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o cleanup.o cleanup.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o dialog.o dialog.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o handle.o handle.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o init.o init.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o keepalive.o keepalive.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o login.o login.c
login.c: In function ‘drcom_login’:
login.c:50: 警告:未使用的参数 ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o logout.o logout.c
logout.c: In function ‘drcom_logout’:
logout.c:34: 警告:未使用的参数 ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o md5.o md5.c
md5.c:131:36: 警告:使用 C99 long long 整数常量
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o misc.o misc.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o passwd.o passwd.c
passwd.c: In function ‘drcom_passwd’:
passwd.c:32: 警告:未使用的参数 ‘timeout’
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o readconf.o readconf.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o watchport.o watchport.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o getaddr.o getaddr.c
gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/wrsg/drcom-1.3.7/include -O2   -c -o log.o log.c
log.c: In function ‘dbg’:
log.c:34: 警告:未使用的参数 ‘format’
gcc -lm -lpthread  drcomd.o daemon.o cleanup.o dialog.o handle.o init.o keepalive.o login.o logout.o md5.o misc.o passwd.o readconf.o watchport.o getaddr.o log.o   -o drcomd
make[1]: Leaving directory `/home/wrsg/drcom-1.3.7/drcomd'
make -C kmod
make[1]: Entering directory `/home/wrsg/drcom-1.3.7/kmod'
make -C /lib/modules/2.6.24.3-12.fc8/build M=/home/wrsg/drcom-1.3.7/kmod modules
make[2]: Entering directory `/usr/src/kernels/2.6.24.3-12.fc8-i686'
  CC [M]  /home/wrsg/drcom-1.3.7/kmod/init.o
  CC [M]  /home/wrsg/drcom-1.3.7/kmod/proc.o
  CC [M]  /home/wrsg/drcom-1.3.7/kmod/proto.o
/home/wrsg/drcom-1.3.7/kmod/proto.c: In function ‘init_hijack’:
/home/wrsg/drcom-1.3.7/kmod/proto.c:450: 错误:‘security_ops’ 未声明 (在此函数内第一次使用)
/home/wrsg/drcom-1.3.7/kmod/proto.c:450: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
/home/wrsg/drcom-1.3.7/kmod/proto.c:450: 错误:所在的函数内只报告一次。)
/home/wrsg/drcom-1.3.7/kmod/proto.c: In function ‘cleanup_hijack’:
/home/wrsg/drcom-1.3.7/kmod/proto.c:461: 错误:‘security_ops’ 未声明 (在此函数内第一次使用)
make[3]: *** [/home/wrsg/drcom-1.3.7/kmod/proto.o] 错误 1
make[2]: *** [_module_/home/wrsg/drcom-1.3.7/kmod] 错误 2
make[2]: Leaving directory `/usr/src/kernels/2.6.24.3-12.fc8-i686'
make[1]: *** [default] 错误 2
make[1]: Leaving directory `/home/wrsg/drcom-1.3.7/kmod'
make: *** [kmod] 错误 2
[wrsg@redapple drcom-1.3.7]$


P.S:我现在选择的是 Fedora (2.6.23.15-137.fc8)进入的,我现在不喜欢XP。

‘security_ops’ 未声明,我应该怎么去声明呢?是不是应该这个未声明而导致下面的错误呢?
发表于 2008-3-9 03:01:50 | 显示全部楼层
security_ops我记得好像是SOCKET套接字的一个参数,要包含<net/tcp.h>头文件。但是这个文件没理由会改的,试试看重新下载一下你的LINUX源码吧。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-9 07:56:19 | 显示全部楼层
在网友zrx550 http://hi.baidu.com/z%5Fr%5Fx那看到这篇文章
----------
linux下的drcom是在2.6的内核中开发的,用到了<linux/security.h>中的security_ops。但是这个 EXPORT_SYMBOL 在2.6.24的内核中被取消了,导致drcom不能被成功的编译。随之而来的问题就是新内核在需要drcom的网络环境中不能上网了。就这个问题我请教了开源版本drcom开发者之一的Wheelz。目前最简单的办法只能修改内核,重新编译。针对2.6.24的内核,具体办法如下:
1) 在内核的security/security.c文件的最后加上EXPORT_SYMBOL(security_ops);
2) 重新编译一下内核。
3) drcom-1.3.7/kmod/proto.c在#include <linux/security.h>后面加上一句:
extern struct security_operations *security_ops;
4)编译安装drcom。
-----------

请问第二步重新编译内核我该怎么去实现,找过资料不过很繁冗。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表