作者kg3363 (深蓝)
看板LinuxDev
标题Re: [问题] gcc编译出现未定义strupr错误
时间Wed Nov 23 01:38:27 2011
※ 引述《kg3363 (深蓝)》之铭言:
: 如题~
: 在CentOs使用gcc编译出现
: updserver.c:(.text+0x2ed): undefined reference to `strupr'
: 请问各位高手~该如何解决~感恩~谢谢^^~
以下是我的原始码
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#include<netdb.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#define BUFFER_SIZE 1024
char* strupr(char *orgstr);
int main(int argc, char **argv){
int sock,length,fromlen,retval;
struct sockaddr_in srvaddr,fromaddr;
char fromip[40];
int fromport;
char buffer[BUFFER_SIZE];
char echobuf[BUFFER_SIZE];
if(argc<2){
fprintf(stderr,"Usage:%s port\n",argv[1]);
exit(1);
}
sock=socket(PF_INET,SOCK_DGRAM,0);
if(sock<0){
fprintf(stderr,"Datagram Socket开启失败!!\n",argv[1]);
exit(1);
}
length=sizeof(srvaddr);
bzero(&srvaddr,length);
srvaddr.sin_family=PF_INET;
srvaddr.sin_addr.s_addr=INADDR_ANY;
srvaddr.sin_port=htons(atoi(argv[1]));
if(bind(sock,(struct sockaddr*)&srvaddr,length)<0){
fprintf(stderr,"Socket Bind 错误,无法连结 Port:%d",atoi(argv[1]));
exit(1);
}
fromlen=sizeof((struct sockaddr_in)fromaddr);
while(1){
fprintf(stdout,"等待UDP讯息到来...\n");
bzero(&buffer,BUFFER_SIZE);
bzero(&fromaddr,fromlen);
retval=recvfrom(sock,buffer,BUFFER_SIZE,0,(struct
sockaddr*)&fromaddr,&fromlen);
if(retval<0){
fprintf(stderr,"recvfrom function 发生错误,无法接收UDP讯息!!\n");
exit(1);
}
bzero(&fromip,20);
strcpy(fromip,inet_ntoa(fromaddr.sin_addr));
fromport=ntohs(fromaddr.sin_port);
fprintf(stdout,"接收UDP讯息:%s[来至%s:%d]\n",buffer,fromip,fromport);
bzero(&echobuf,BUFFER_SIZE);
strcpy(echobuf,strupr(buffer));
retval=sendto(sock,echobuf,BUFFER_SIZE,0,(struct
sockaddr*)&fromaddr,fromlen);
if(retval<0){
fprintf(stderr,"Sendto function 发生错误,无法传送UDP讯息!!\n");
exit(1);
}
fprintf(stderr,"回应UDP讯息:%s[送至%s:%d]\n",echobuf,fromip,fromport);
}
close(sock);
exit(0);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.30.109.133
1F:→ uranusjr:char* strupr(char *orgstr); 11/23 02:34
2F:→ uranusjr:这行前置宣告了 strupr 这个函数, 但是你的程式码中没有 11/23 02:34
3F:→ uranusjr:实作它, 造成 linker 无法正确连结此函数 11/23 02:35
4F:推 final01:把那行拿掉啦 11/23 12:31