在AIX 7(64位)中编译Pro * C

时间:2017-10-23 07:27:39

标签: c++

我尝试将旧的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了解不多,所以欢迎任何帮助。谢谢。

1 个答案:

答案 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

,那就更方便了
相关问题