由于项目上面的要求,需要将原有x86架构上的centos6.6上面跑的6.3.1的corba迁徙到装有centos7的arm服务器上面。在迁移到arm上后发现,TAO中间件可以正常运行,而命名服务却一直连接不上TAO,程序卡在了reslove_initial_references("NameService")中。
这种问题是最让人恶心的,不同机器,同一套代码,编译没问题,环境变量也没有差异。
ldd一下可执行文件,都是一样的版本链接。突然看到libc.so.6,想到了会不会是ACE旧包和系统libc的版本问题。
下载了最新的7.0.3ACE包进行安装。执行程序,发现连上了。
项目需要支持不同的操作系统这点确实很恶心,libc的版本不一样,对很多方面的影响都很大