免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6504 | 回复: 10
打印 上一主题 下一主题

[故障求助] aix编译错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-31 22:30 |只看该作者 |倒序浏览
10可用积分
在linux下编译正常,到aix下编译提示如下:
"/ora_client/precomp/public/sqlda.h", line 62.27: 1506-046 (S) Syntax error.
"uni_client.c", line 50.21: 1506-068 (S) Operation between types "struct sigset_
t" and "int" is not allowed.
make: The error code from the last command is 1.


Stop.

论坛徽章:
0
2 [报告]
发表于 2009-01-01 00:36 |只看该作者
语法错误?应该是编译器的差异所造成的,把对应行的代码贴出来。

论坛徽章:
12
CU大牛徽章
日期:2013-09-18 15:20:4815-16赛季CBA联赛之同曦
日期:2016-02-01 20:28:25IT运维版块每日发帖之星
日期:2015-11-10 06:20:00操作系统版块每日发帖之星
日期:2015-10-28 06:20:002015亚冠之塔什干棉农
日期:2015-06-04 11:41:56丑牛
日期:2014-05-10 16:11:33技术图书徽章
日期:2013-09-23 13:25:58CU大牛徽章
日期:2013-09-18 15:21:17CU大牛徽章
日期:2013-09-18 15:21:12CU大牛徽章
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:20:58数据库技术版块每日发帖之星
日期:2016-02-08 06:20:00
3 [报告]
发表于 2009-01-01 04:18 |只看该作者
原帖由 lisy7421 于 2008-12-31 22:30 发表
Operation between types "struct sigset_t" and "int" is not allowed.

这不是说得很清楚么?
可能函数期待传入struct sigset_t类型的参数,你穿了个int类型的参数(或者相反),所以就报错了。

论坛徽章:
0
4 [报告]
发表于 2009-01-01 09:27 |只看该作者
不懂  进来看一下

论坛徽章:
0
5 [报告]
发表于 2009-01-04 12:40 |只看该作者
/*
* $Header: sqlda.h,v 1.3 1995/03/07 16:33:37 jbasu Exp $ sqlda.h
*/

/***************************************************************
*      The SQLDA descriptor definition                               *
*--------------------------------------------------------------*
*      VAX/3B Version                                               *
*                                                              *
*  Copyright (c) 1987, 1997 by Oracle Corporation                    *
***************************************************************/


/* NOTES
  **************************************************************
  ***                                                        ***
  *** This file is SOSD.  Porters must change the data types ***
  *** appropriately on their platform.  See notes/pcport.doc ***
  *** for more information.                                  ***
  ***                                                        ***
  **************************************************************
*/

/*  MODIFIED
    lvbcheng   08/15/97 -  Move sqlda protos to sqlcpr.h
    lvbcheng   06/25/97 -  Move sqlda protos to this file
    jbasu      01/29/95 -  correct typo
    jbasu      01/27/95 -  correct comment - ub2->sb2
    jbasu      12/12/94 - Bug 217878: note this is an SOSD file
    Morse      12/01/87 - undef L and S for v6 include files
    Richey     07/13/87 - change int defs to long
    Clare      09/13/84 - Port: Ch types to match SQLLIB structs
    Clare      10/02/86 - Add ifndef SQLDA
*/

#ifndef SQLDA_
#define SQLDA_ 1

#ifdef T
# undef T
#endif
#ifdef F
# undef F
#endif

#ifdef S
# undef S
#endif
#ifdef L
# undef L
#endif

struct SQLDA {
  /* ub4    */ unsigned int N; /* Descriptor size in number of entries        */
  /* text** */ char        **V; /* Ptr to Arr of addresses of main variables   */
  /* ub4*   */ unsigned int *L; /* Ptr to Arr of lengths of buffers            */
  /* sb2*   */ short     *T; /* Ptr to Arr of types of buffers                    */
  /* sb2**  */ short    **I; /* Ptr to Arr of addresses of indicator vars   */
  /* sb4    */ int           F; /* Number of variables found by DESCRIBE       */
  /* text** */ char        **S; /* Ptr to Arr of variable name pointers            */
  /* ub2*   */ short     *M; /* Ptr to Arr of max lengths of var. names     */
/* ub2*   */ short     *C; /* Ptr to Arr of current lengths of var. names */
  /* text** */ char        **X; /* Ptr to Arr of ind. var. name pointers       */
  /* ub2*   */ short     *Y; /* Ptr to Arr of max lengths of ind. var. names */
  /* ub2*   */ short     *Z; /* Ptr to Arr of cur lengths of ind. var. names */
  };

typedef struct SQLDA SQLDA;

#endif

/* ----------------- */
/* defines for sqlda */
/* ----------------- */

#define SQLSQLDAAlloc(arg1, arg2, arg3, arg4) sqlaldt(arg1, arg2, arg3, arg4)

#define SQLSQLDAFree(arg1, arg2) sqlclut(arg1, arg2)

[ 本帖最后由 lisy7421 于 2009-1-4 12:48 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2009-01-04 12:43 |只看该作者
ssize_t
Readn(int fd,char *vptr,size_t n)
{

        ssize_t nleft;
        ssize_t nread;
        char *ptr;
        int  i_timeout,j=0;
        int t1=0;
        struct sigaction act;
        char s_str[13];
        char bufls[1461];
        FILE *fp;
        fp=fopen("/tmp/test.log","w");
        ptr = vptr;
        nleft = n;
/*-----超时控制-----*/       
        act.sa_handler = sigalarm_handler;
        act.sa_mask =0;
        act.sa_flags=0;
/*
        vptr[23+1]='\0';
*/
        sigaction(SIGALRM,&act,NULL);
        TimeOutFlag=0;
        i_timeout=config.TimeOut;
        alarm(i_timeout);
memset(vptr,'\0',sizeof(vptr));
        while(nleft > 0){
        t1++;
/***
        read 返回值:
                0:结束;
                >0:返回读取的字节数;
                -1:出错,errno定义出错值;
/*
memset(ptr,'\0',sizeof(ptr));
***/
                nread=read(fd,vptr+(t1-1)*1460,1460);
                if(t1 == 1) {strncpy(s_str,vptr,12);nleft=atoi(s_str);}
               
                if(nread <0){
                        if (errno==EINTR){
                                if(TimeOutFlag==1) {
                                        return E_TIMEOUT;
                                }
                                nread = 0;
                        }
                        else
                                return -1;
                }
                else if(nread == 0)
                        break;
        nleft -= nread;
        ptr += nread;
fprintf(fp,"\n [%d]vptr =[%s]nread=[%d]nleft=[%d]",strlen(vptr),vptr,nread,nleft);
        }
        alarm(0);
        fprintf(fp,"end mptr =[%s] vptr =[%s]",ptr,vptr);
        fclose(fp);
        fflush(stdout);
        return 0;
}

论坛徽章:
0
7 [报告]
发表于 2009-01-04 12:44 |只看该作者
上面是部分代码,红色为出错的地方

论坛徽章:
0
8 [报告]
发表于 2009-01-04 12:50 |只看该作者
是否是gcc的版本不一致?

论坛徽章:
0
9 [报告]
发表于 2009-01-04 20:16 |只看该作者
操作系统版本是什么?
用proc编译的?

论坛徽章:
12
CU大牛徽章
日期:2013-09-18 15:20:4815-16赛季CBA联赛之同曦
日期:2016-02-01 20:28:25IT运维版块每日发帖之星
日期:2015-11-10 06:20:00操作系统版块每日发帖之星
日期:2015-10-28 06:20:002015亚冠之塔什干棉农
日期:2015-06-04 11:41:56丑牛
日期:2014-05-10 16:11:33技术图书徽章
日期:2013-09-23 13:25:58CU大牛徽章
日期:2013-09-18 15:21:17CU大牛徽章
日期:2013-09-18 15:21:12CU大牛徽章
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:20:58数据库技术版块每日发帖之星
日期:2016-02-08 06:20:00
10 [报告]
发表于 2009-01-04 20:54 |只看该作者
原帖由 lisy7421 于 2009-1-4 12:43 发表
ssize_t
Readn(int fd,char *vptr,size_t n)
{

        ssize_t nleft;
        ssize_t nread;
        char *ptr;
        int  i_timeout,j=0;
        int t1=0;
        struct sigaction act;
        char s_str[13];
        char bufls[1461];
        F ...

难道现在作开发的都已经牛到不看系统头文件了么?
sys/signal.h中很清楚的说明了sigaction数据结构中的sa_mask是sigset_t数据结构,而不是int或者short之类的原子类型
对sigset_t类型变量的初始化要用sigemptyset函数,不能直接赋值为0
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP