在aix下编译xerces-c和icu的疑难。。急!急!急!

suyupin 2006-03-16 09:47:33
我的安装环境:
platform: aix 5.3(AIX bill_app2 3 5 00C8ED4A4C00)
icu: icu3.4(icu3.4)
xerces-c: xerces-c-src_2_7_0
compiler: VisualAge C++ Professional / C for AIX Compiler, Version 6
(GCC 4.0.2 )
make: GNU make3.8



我在icu的目录下执行
sh ./runConfigureICU AIX --disable-64bit-libs ;
gmake;
之后,在$ICU_ROOT/lib 目录下得到以下的共享库:

libicudata.a libicui18n32.a libicule32.0.a libicutu.a libicuuc32.a
libicudata32.0.a libicuio.a libicule32.a libicutu32.0.a
libicudata32.a libicuio32.0.a libiculx.a libicutu32.a
libicui18n.a libicuio32.a libiculx32.0.a libicuuc.a
libicui18n32.0.a libicule.a libiculx32.a libicuuc32.0.a


但是,当我在XERCESCROOT/src/*/目录下执行
sh ./run* -paix -cxlc_r -xxlC_r -nsocket -rpthread -b32 -ticu -micu;
gmake
发生了以下的错误:
=========================================================================================
(CP) /home/bossnm/xdk/xerces-c-src_2_7_0/include/xercesc/util/Transcoders/ICU
(C++) ICUTransService.o
(CP) /home/bossnm/xdk/xerces-c-src_2_7_0/include/xercesc/util/MsgLoaders/ICU
(C++) ICUMsgLoader.o
generating XercesMessages_en_US.res
exec(): 0509-036 Cannot load program genrb because of the following errors:
0509-150 Dependent module libicutu32.a could not be loaded.
0509-022 Cannot load module libicutu32.a.
0509-026 System error: A file or directory in the path name does not exist.
gmake[2]: *** [XercesMessages_en_US.res] Error 255
gmake[1]: *** [messageloaders] Error 2
gmake: *** [Util] Error 2
==========================================================================================
我用GCC和xlC来编译,也用64位的编译了,都是同样的结果。但是我在hp-11上做就没有问题
但是如果xerces-c不与icu联编的话就没有问题!

郁闷啊,困扰了,好几天了。刚过来试用就碰到这个问题。。。

能帮我搞定这个问题的,另外加300分。。。
...全文
221 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
suyupin 2006-03-16
  • 打赏
  • 举报
回复
兄弟,帮忙先!
alaiyeshi 2006-03-16
  • 打赏
  • 举报
回复
呵呵
不容易啊
终于看到又一个用xerces-c/c++的兄弟了,握手先
suyupin 2006-03-16
  • 打赏
  • 举报
回复
本来想多放分,但是系统好像禁止了,
能解决问题的请发email:suyp@ffcs.cn或qq:38999123
alaiyeshi 2006-03-16
  • 打赏
  • 举报
回复
nnd,我手上没aix的机器,不能再现
全凭猜了
libicutu.a不能被load
0509-026 System error: A file or directory in the path name does not exist
从眼前来看,原因好像是这里
看看你的 0509-026
suyupin 2006-03-16
  • 打赏
  • 举报
回复
是的设定了,ICUROOT,XERCESCROOT也设定了,就是不知道为什么会这样
alaiyeshi 2006-03-16
  • 打赏
  • 举报
回复
编译源文件,编译的过程实际上是将资源源文件优化成 ICU4C 实际使用的 res 格式文件。 ICU4C 提供了 genrb 程序用于 Resource Bundle 源文件的编译,这个工具可以在 ICU 目录的 bin 子目录中找到。
我想问的是genrb使用的时候,例如linux下是LD_LIBRARY_PATH可能要指定一下的.会不会在AIX上也有类似的东西呢?

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧