最近在Solaris上安装Oracle 9.2.0.7, 却发现运行"relink all"时报了如下错误, 这已经第二次发现有关libsrvm.so的链接错误了. 只要不是运行"relink all"则都不会出错, 如"relink oracle"或"relink client_sharelib"等. 具体错误信息如下:
ld: fatal: file ${ORACLE_HOME}/lib/libskgxn9.so: wrong ELF class: ELFCLASS64
ld: fatal: File processing errors. No output written to libsrvm.so
*** Error code 1
make: Fatal error: Command failed for target `libsrvm.so'
用"file"命令去看"libskgxn9.so"文件的属性, 发现他是一个编译成64位的库, 而libsrvm.so应当是一个32位的动态库, 于是到$ORACLE_HOME/srvm/lib目录下去修改了一下env_rdbms.mk文件, 如下所示:
# EXSYSLIBS = -lposix4 -lm -lskgxn9 #original line
EXSYSLIBS = -lposix4 -lm
然后运行"make -f ins_rdbms.mk isrvm"去单独编译这个模块, 没有报错. 再重新运行"relink all"也没有报错了.
留言 (1)
Oracle should give the 32bit library file : libskgxn9.so
This is the root cause.
Posted by anysql | Mar 5, 2007 2:26 PM