我尝试将旧的Pro * C程序从HP迁移到AIX,在更改了某些设置后,我可以创建二进制文件但无法执行。似乎我现在面临使用错误的库(lib32 / libclntsh.a)。
这是错误
0509-036 Cannot load program PROGNAME because of the following errors:
0509-150 Dependent module SOMEPATH/lib32/libclntsh.a(shr.o) could not be loaded.
0509-103 The module has an invalid magic number.
我通过将对象模式设置为64来构建程序
export OBJECT_MODE=64
这是我制作二进制文件时的完整图像
/PATHA/bin/oraxlc -O3 -q64 -DSS_64BIT_SERVER -I. -c MYPROG.c "MYPROG.c", line 2051.25: 1506-342 (W) "/*" detected in comment.
/PATHA/bin/oraxlc -o GLMJLUSB GLMJLUSB.o -L/PATHA/lib/ -lclntsh -lld -lm `cat /PATHA/lib/sysliblist` -lm -lc_r -lpthreads +DD64
/PATHB/bin/.orig/xlc: 1501-228 (W) input file +DD64 not found
我有什么方法可以指定不使用问题库,而是使用64位版本吗?
我对Pro * C和AIX了解不多,所以欢迎任何帮助。谢谢。
答案 0 :(得分:0)
(还不是答案,期待很多编辑)。
你有Makefile吗?如果没有,请创建一个:
.SUFFIXES: .pc
PROC = ${ORACLE_HOME}/bin/proc
PROCFLAGS = code=ansi lines=yes
.pc.c:
${PROC} ${PROCFLAGS} $<
不断改进,直到您可以成功将* .pc文件预编译为* .c文件。
注意:如果你有GNU!make而不是prehistoric!make
,那就更方便了