HP 上编译的32位64位问题

    之前在HP上做了一个项目遇到这样一个编译问题:ld: Mismatched ABI (not an ELF file) for -lCsup_v2, found /usr/lib/libCsup_v2.sl Fatal error.

    猜的可能是32位64位编译的问题。首先查看了库文件/usr/lib/libCsup_v2.sl是32位还是64位的:

   file libCsup_v2.sl
   libCsup_v2.sl:  PA-RISC1.1 shared library -not stripped

   可以看出在/usr/lib/里的是32位的,在/usr/lib/hpux64才是64位的,要设置这个环境变量
   setenv SHLIB_PATH      /usr/lib/hpux64:/usr/lib:$ORACLE_HOME/lib:$ARBORDIR/3pACE/ACE_wrappers/bin:${ARBORDIR}/3p/rosette/SOLARIS/rel/lib:$ARBORDIR/3ppythoni/SOLARIS/lib:$ARBORDIR/site_specific/lib:/usr/openwin/lib:/usr/dt/lib:/usr/ucblib:$SHLIB_PATH
 
同时makefile.HPUX里是根据
# itanium vs pa-risc, introduced env var HP_ARCH
123 # if set to ITANIUM, then link Csup
124 # if set to PA, then link Csup2
125 # if not set, default to PA
126 CCC_LIBS_ITANIUM = -lstd_v2 -lCsup
127 CCC_LIBS_PA     = -lstd_v2 -lCsup_v2
128 CCC_LIBS_       = -lstd_v2 -lCsup_v2
129 CCC_LIBS        = $(CCC_LIBS_$(HP_ARCH))
 
因此要设置环境变量
setenv HP_ARCH ITANIUM 使用Csup而不是Csup_v2


这样设置后程序就顺利编译通过,解决了这个问题当时很高兴,哈哈,后来发现好多人都遇到过这个问题

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值