在64位机器上编译ec程序遇到问题
一个简单的程序,在32位机器上编译没遇到问题,移植到64位机器上后编译提示很多错误。哪位大侠有过这样的经历,帮忙解释一下,不胜感激。#include <stdio.h>;
EXEC SQL include sqlca ;
main()
{
EXEC SQL BEGIN DECLARE SECTION ;
char dbname ;
int a ;
EXEC SQLENDDECLARE SECTION ;
strcpy( dbname, (char *)getenv("DBNAME") ) ;
EXEC SQL DATABASE :dbname ;
EXEC SQL SELECT a INTO :a FROM tab1 WHERE b=1 ;
EXEC SQL CLOSE DATABASE ;
exit(0) ;
}
编译信息:
esql -o a a.ec
"a.ec", line 11.33: 1506-304 (W) No function prototype given for "getenv".
"a.ec", line 11.9: 1506-304 (W) No function prototype given for "strcpy".
"a.ec", line 11.25: 1506-745 (I) 64-bit portability: possible incorrect pointer through conversion o
f int type into pointer.
"a.ec", line 14.25: 1506-495 (I) Pointer type conversion found.
"a.ec", line 14.25: 1506-374 (I) Pointer types "char*" and "int*" are not compatible.
"a.ec", line 17.9: 1506-304 (W) No function prototype given for "exit".
在64位机器上编译ec程序遇到问题
cc 编译参数加-m64在64位机器上编译ec程序遇到问题
包含的头文件要有stdlib.hstrings.ha 必须定义成char型
是不是9。4不支持long \ int 型类型
在64位机器上编译ec程序遇到问题
嗯你程序中用到某些系统涵数调用的话需要加上相应的头文件的同过man 涵数名可以找到相应的头文件
应该支持long\int 这个问题解决了吗?我也遇到同样的问题 也许要装上64位的IDS 哥们,人家可是04年的求助帖子啊。
说不定,早就不在这个圈子混,过上幸福的日子了 esql -Ae -c -s
esql -Ae -c -s chknmend.ec
试试.
不过最主要的还是要看你的 esql 版本,esql -V 看一看. esql基本上就是一个shell,支持的选项大部分实际上就是cc/xlc等的选项。考虑到各个系统的cc选项千差万别。因此-V选项的,并不能揭示什么。楼上的是HP-UX的esql? TO ivhb :
我是AIX 版的esql .
你说的很对,主要是CC编译工具,
页:
[1]