Chinaunix

标题: cc编译not ok,CC编译ok,help! [打印本页]

作者: shishi2006    时间: 2006-03-02 18:59
标题: cc编译not ok,CC编译ok,help!
编译命令: cc -o server -xarch=generic64 -D_XPG4_2 -D__EXTENSIONS__ -I. -lsocket -lnsl server.c

错误信息:
"demo.h", line 21: warning: no explicit type given
"demo.h", line 21: syntax error before or at: megaco_sctp_sockaddr_storage_st
"demo.h", line 21: warning: old-style declaration or incorrect type for: megaco_sctp_sockaddr_storage_st
"demo.h", line 22: warning: no explicit type given
"demo.h", line 22: syntax error before or at: megaco_sctp_os_sockaddr_in_st
"demo.h", line 22: warning: old-style declaration or incorrect type for: megaco_sctp_os_sockaddr_in_st
"demo.h", line 23: warning: no explicit type given
"demo.h", line 23: syntax error before or at: megaco_sctp_os_sockaddr_in6_st
"demo.h", line 23: warning: old-style declaration or incorrect type for: megaco_sctp_os_sockaddr_in6_st
"demo.h", line 24: warning: no explicit type given
"demo.h", line 24: syntax error before or at: megaco_sctp_initmsg_st
"demo.h", line 24: warning: old-style declaration or incorrect type for: megaco_sctp_initmsg_st
"server.c", line 34: undefined symbol: sin
"server.c", line 37: undefined symbol: sctp_notification
"server.c", line 37: syntax error before or at: )
"server.c", line 55: warning: improper pointer/integer combination: op "="
"server.c", line 56: left operand of "->" must be pointer to struct/union
cc: acomp failed for server.c

测试程序如下:

###   demo.h   ###
#include <assert.h>
#include <sys/types.h>
#include <sys/uio.h>
#include <sys/socket.h>
#include <sys/stropts.h>
#include <sys/stream.h>
#include <sys/socketvar.h>
#include <sys/sockio.h>
#include <arpa/inet.h>

#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <stropts.h>
#include <stdio.h>
#include <strings.h>
#include <netinet/in.h>
#include <netinet/sctp.h>

#define SCTP_SOCKET socket

typedef sockaddr_storage        megaco_sctp_sockaddr_storage_st;
typedef sockaddr_in             megaco_sctp_os_sockaddr_in_st;
typedef sockaddr_in6            megaco_sctp_os_sockaddr_in6_st;
typedef sctp_initmsg            megaco_sctp_initmsg_st;

###  server.c  ###
#include "demo.h"

#define BUFLEN  100
   int main()
   {   
           struct sctp_event_subscribe event;
           int lfd, cfd;
           int onoff = 1;
           struct sockaddr_in sin[1];

           if ((lfd = SCTP_SOCKET(AF_INET, SOCK_STREAM, IPPROTO_SCTP)) == -1) {
                   perror("socket");
                   exit(1);         
           }
   
           return 0;
    }

望大侠指点,谢谢!
作者: flw    时间: 2006-03-02 20:46
sockaddr_in 等等那一大堆 struct 前面都要加关键字 struct 的。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2