交叉编译ORBit2库
checking alignment of CORBA_octet... 0
configure: error: Failed to find alignment. Check config.log for details.
打开configure配置文件,直接更改这些变量在针对交叉编译时的值
找到这种类型的语句:
if test "$cross_compiling" = yes; then :
ac_cv_alignof_CORBA_octet=0
将ac_cv_alignof_CORBA_octet值设为1。.
其他变量的更改如下:
ac_cv_alignof_CORBA_boolean=4
ac_cv_alignof_CORBA_char=1
ac_cv_alignof_CORBA_double=8
ac_cv_alignof_CORBA_float=4
ac_cv_alignof_CORBA_long=4
ac_cv_alignof_CORBA_long_double=8
ac_cv_alignof_CORBA_long_long=8
ac_cv_alignof_CORBA_octet=1
ac_cv_alignof_CORBA_pointer=4
ac_cv_alignof_CORBA_short=2
ac_cv_alignof_CORBA_struct=1
ac_cv_alignof_CORBA_wchar=2
我是这样更改后,configure阶段成功,good luck with you!
2、make阶段错误:
make[8]: Entering directory `/home/bao/ORBit2-2.14.19/include/orbit/orb-core'
(rm -f corba-defs.h corba-defs-stubs.c corba-defs-skels.c corba-defs-common.c corba-defs-imodule.c corba-defs-skelimpl.c || true) > /dev/null
../../../src/idl-compiler/orbit-idl-2 -I../../../src/idl/CORBA_PIDL -I../../../src/idl/CORBA -I../../../src/idl/interop -I../../../src/orb/orb-core --noskels --nodefskels --nostubs --noidata --nocommon --showcpperrors --define=Object=OObject --define=TypeCode=TTypeCode --deps ./.deps/corba-defs.idl.P ../../../src/orb/orb-core/corba-defs.idl
/bin/bash: ../../../src/idl-compiler/orbit-idl-2: cannot execute binary file
make[8]: *** [corba-defs.h] Error 126
make[8]: Leaving directory `/home/bao/ORBit2-2.14.19/include/orbit/orb-core'
解决方法:
拷贝 /usr/bin下面的orbit-idl-2到/home/bao/ORBit2-2.14.19/src/idl-compiler/并命名为bak_orbit-idl-2,修改该目录下的Makefile
找到这部分
$(orbit_idl_2_DEPENDENCIES)
@rm -f orbit-idl-2$(EXEEXT)
#$(LINK) $(orbit_idl_2_OBJECTS) $(orbit_idl_2_LDADD) $(LIBS)
改为
$(orbit_idl_2_DEPENDENCIES)
@rm -f orbit-idl-2$(EXEEXT)
cp bak_orbit-idl-2 orbit-idl-2 (注意:要tab键开头,make时才知道它是命令)
#$(LINK) $(orbit_idl_2_OBJECTS) $(orbit_idl_2_LDADD) $(LIBS)
make时出现错误:
make: Nothing to be done for `all'.
执行make clean,在make。