我正在尝试在RHEL 5.5上构建omniORB库。

我试着用

CC = gcc和CXX = g++和PYTHON = bin/omnipython

我遇到这个问题,抱怨

gmake[3]: Entering directory `/home/local/NT/jayanthv/omniORB-4.1.4/src/lib/omniORB'
../../../bin/omniidl -bcxx -p../../../src/lib/omniORB -Wbdebug -Wba -p../../../src/lib/omniORB -Wbdebug -v -ComniORB4 ../../../idl/Naming.idl


omniidl: ERROR!

omniidl: Could not open IDL compiler module _omniidlmodule.so
omniidl: Please make sure it is in directory /home/local/NT/jayanthv/omniORB-4.1.4/lib
omniidl: (or set the PYTHONPATH environment variable)

omniidl: (The error was '/home/local/NT/jayanthv/omniORB-4.1.4/lib/_omniidlmodule.so: wrong ELF class: ELFCLASS64')

因此,我尝试改用Intel C++编译器
export CXX=/opt/intel/Compiler/11.1/080/bin/ia32/icc
export LD_LIBRARY_PATH=/opt/intel/Compiler/11.1/080/lib/ia32
export PYTHON=/home/local/NT/jayanthv/omniORB-4.1.4/bin/omnipython

但是,现在它抱怨
../../../bin/omniidl -bcxx -p ../../../src/lib/omniORB -Wbdebug -Wba -p ../../../src/lib/omniORB -Wbdebug -v -ComniORB4 ../../../idl/Naming.idl
omniidl: ERROR!

omniidl: Could not open IDL compiler module _omniidlmodule.so
omniidl: Please make sure it is in directory /home/local/NT/jayanthv/omniORB-4.1.4/lib
omniidl: (or set the PYTHONPATH environment variable)

omniidl: (The error was '/home/local/NT/jayanthv/omniORB-4.1.4/lib/_omniidlmodule.so: undefined symbol: __cxa_pure_virtual')

操作系统是具有x86_64架构的RHEL 5.5,我正在尝试构建32位二进制文​​件。希望对这个问题有任何见识。

最佳答案

这是因为omniidl是作为Python扩展模块实现的。
您使用的Python可执行文件是64位可执行文件,因此它
无法加载32位库。

看看这个http://objectmix.com/object/196129-compiling-omniorb-32bits-libraries-64bits-machine-suse.html

08-26 23:30