关于PROC开发报错问题(俺是新手)

和平战马 2012-09-18 11:43:53
用PROC预编译通过后,执行可执行文件报错,请麻烦各位大侠指导一下!
[DMBI@DMBI-MID] $ cat pro_c.pc
#include <stdio.h>

EXEC SQL BEGIN DECLARE SECTION;
char username[20];
char password[20];
char last_name[64];
EXEC SQL END DECLARE SECTION;
EXEC SQL INCLUDE sqlca;
void sqlerror();

main()
{
EXEC SQL WHENEVER SQLERROR DO sqlerror();
strcpy(username,"dmbi");
strcpy(password, "dmbi123");
EXEC SQL CONNECT:username IDENTIFIED BY:password;

EXEC SQL select flag_class_name into :last_name from rpt_flag_class where flag_class_id=10072 ;
printf("\nID=2,last_name=%s\n" , last_name);
}
void sqlerror()
{
EXEC SQL WHENEVER SQLERROR CONTINUE;
printf("\n---- oracle error detected:\n");
printf("%.70s\n", sqlca.sqlerrm.sqlerrmc);
EXEC SQL ROLLBACK WORK RELEASE;
exit(1);
}

[DMBI@DMBI-MID] $

[DMBI@DMBI-MID] $ proc pro_c.pc

Pro*C/C++: Release 10.2.0.4.0 - Production on Sun Sep 16 22:10:40 2012

Copyright (c) 1982, 2007, Oracle. All rights reserved.

System default option values taken from: /export/home/oracle/app/oracle/product/10.2.0/precomp/admin/pcscfg.cfg

[DMBI@DMBI-MID] $
[DMBI@DMBI-MID] $
[DMBI@DMBI-MID] $ ls
pro_c pro_c.c pro_c.lis pro_c.o pro_c.pc
[DMBI@DMBI-MID] $
[DMBI@DMBI-MID] $
[DMBI@DMBI-MID] $ gcc pro_c.c -o pro_c -I $ORACLE_HOME/precomp/public/ -L $ORACLE_HOME/lib/ $ORACLE_HOME/lib32/libclntsh.so
[DMBI@DMBI-MID] $
[DMBI@DMBI-MID] $ ls
pro_c pro_c.c pro_c.lis pro_c.o pro_c.pc
[DMBI@DMBI-MID] $ ls -lrt
total 50
-rw-r--r-- 1 DMBI DMBI 702 Sep 12 18:35 pro_c.pc
-rwxrwxr-x 1 DMBI DMBI 4584 Sep 12 21:55 pro_c.o
-rw-r--r-- 1 DMBI DMBI 10495 Sep 16 22:10 pro_c.c
-rw-r--r-- 1 DMBI DMBI 0 Sep 16 22:10 pro_c.lis
-rwxr-xr-x 1 DMBI DMBI 8000 Sep 16 22:11 pro_c
[DMBI@DMBI-MID] $ pro_c
ld.so.1: pro_c: fatal: /export/home/oracle/app/oracle/product/10.2.0/lib/libclntsh.so.10.1: wrong ELF class: ELFCLASS64
Killed
[DMBI@DMBI-MID] $
[DMBI@DMBI-MID] $
[DMBI@DMBI-MID] $
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
hrbhitxw 2012-09-20
  • 打赏
  • 举报
回复
gcc pro_c.c -o pro_c -I $ORACLE_HOME/precomp/public/ -L $ORACLE_HOME/lib/ $ORACLE_HOME/lib32/libclntsh.so
$ORACLE_HOME/lib/是用64位库 就不要加后面32位库了,在执行环境里要么只用$ORACLE_HOME/lib/,要么只用$ORACLE_HOME/lib32/
shiter 2012-09-18
  • 打赏
  • 举报
回复
路过帮顶,没见过
和平战马 2012-09-18
  • 打赏
  • 举报
回复
是不是问题很简单,怎么都没有人理!

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧