LinuxSir.cn,穿越时空的Linuxsir!

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

help!!!安装无线网卡出现的错误

[复制链接]
发表于 2007-2-9 16:03:50 | 显示全部楼层 |阅读模式
debian:/usr/src/dlinkwcconfig# make
g++ -c -pipe -Wall -W -O2  -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I../../include/qt3 -I.ui/ -I. -I.moc/ -o .obj/ifw.o ifw.cpp
ifw.cpp:47: error: `sockaddr_in*sin' redeclared as different kind of symbol
/usr/include/bits/mathcalls.h:66: error: previous declaration of `double
   sin(double)'
make: *** [.obj/ifw.o] 错误 1
   
    本人的理解是ifw.cpp文件中定义的'sockaddr_in*sin'参数在/usr/include/bits/mathcalls.h文件中是被定义成"双字"的,请问该如何修改???

ifw.cpp文件:
#include "dlinkdialog.h"
#include "ifw.h"

#define MAXLINE 255
QString name;

void test(QString &);
static int sockfd;
static struct ifreq ifr;
static struct iwreq iwr;
static struct sockaddr_in *sin;

char * my_ether_ntoa(struct ether_addr* add)
{
    char *temp;
    temp=(char *)malloc(18*sizeof(char));
    sprintf(temp, "%02X:%02X:%02X:%02X:%02X:%02X",
            add->ether_addr_octet[0],
            add->ether_addr_octet[1],
.
.
.


mathcalls.h文件:

/* Trigonometric functions.  */

_Mdouble_BEGIN_NAMESPACE
/* Arc cosine of X.  */
__MATHCALL (acos,, (_Mdouble_ __x));
/* Arc sine of X.  */
__MATHCALL (asin,, (_Mdouble_ __x));
/* Arc tangent of X.  */
__MATHCALL (atan,, (_Mdouble_ __x));
/* Arc tangent of Y/X.  */
发表于 2007-2-9 16:13:00 | 显示全部楼层
是不是你的gcc版本与它要求的不符?
回复 支持 反对

使用道具 举报

发表于 2007-2-9 16:25:13 | 显示全部楼层
不是双字节的问题,而是 g++ 把
static struct sockaddr_in *sin;

中指向结构的指针 sin,和数学函数库中的 sin() 函数弄混了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-9 16:38:54 | 显示全部楼层
我是新手,没改过代码.高手请帮忙,谢谢!
下载地址:http://nchc.dl.sourceforge.net/s ... linkwcconfig.tar.gz
g++ 版本如下:
debian:/usr/src# g++ --version
g++ (GCC) 3.3.5 (Debian 1:3.3.5-13)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
回复 支持 反对

使用道具 举报

发表于 2007-2-9 17:18:34 | 显示全部楼层
我机器上没装 qt 的编译环境,不能帮你编译了,

但那个问题,你只需要把 ifw.cpp 里面的 sin 指针 改个名字即可,比如 sin1, 下面用到的3、4处sin也相应地改了,但是你千万不能全程替换,因为 struct sockaddr_in 里面有一个属性叫 sin_addr . 改的时候小心点,可不能把 sin->sin_addr 弄成 sin1->sin1_addr 了,

应该是 sin1->sin_addr
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-2-9 17:33:48 | 显示全部楼层
非常感谢!编译似乎通过了,下面是结果.

debian:/usr/src/dlinkwcconfig# make
make: Warning: File `ifw.cpp' has modification time 27 s in the future
g++ -c -pipe -Wall -W -O2  -DQT_NO_DEBUG -DQT_SHARED -DQT_THREAD_SUPPORT -I/usr/share/qt3/mkspecs/default -I. -I../../include/qt3 -I.ui/ -I. -I.moc/ -o .obj/ifw.o ifw.cpp
g++  -o dlnik .obj/main.o .obj/ifw.o .obj/dlinkdialog.o .obj/qmake_image_collection.o .obj/moc_dlinkdialog.o   -L/usr/share/qt3/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm
make: 警告:检测到时钟错误。您的创建可能是不完整的。
回复 支持 反对

使用道具 举报

发表于 2007-2-9 17:38:36 | 显示全部楼层
没问题,从你的输出看make已经重新编译ifw.cpp了。
回复 支持 反对

使用道具 举报

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

本版积分规则

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