solaris10g++编译程序链接时候报错symbol referencing errors

在Solaris 10环境下使用g++编译程序时遇到符号引用错误,提示未能找到IBillingServiceControl文件中的deallocate和allocate函数。实际问题在于LIBRARY_PATH环境变量不应指向/usr/sfw/lib/sparcv9,而应为sparcv9下的64位库文件创建软链接。正确做法是使用ln -s命令创建源文件到目标文件的软链接,避免误操作导致源文件丢失。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ld: warning: symbol 'typeinfo for std::basic_iostream<char, std::char_traits<char> >' has differing sizes:
        (file ../../../pub_c/src/cc++/serial.o value=0x48; file /usr/sfw/lib/sparcv9/libstdc++.so value=0x38);
        ../../../pub_c/src/cc++/serial.o definition taken
Undefined                       first referenced
 symbol                             in file
std::__default_alloc_template<(bool)1, (int)0>::deallocate(void*, unsigned long)./IBillingServiceControl.o
std::__default_alloc_template<(bool)1, (int)0>::allocate(unsigned long)./IBillingServiceControl.o
ld: fatal: symbol referencing errors. No output written to ../../bin/appsms3billingprocess
collect2: ld returned 1 exit status

make[1]: *** [../../bin/appsms3billingprocess] Error 1

错误上面显示IBillingServiceControl文件中有deallocate和allocate函数没有找到。其实我根本就没用到这俩函数。

其实真正的原因,solaris下环境变量LIBRARY_PATH不能设置成/usr/sfw/lib/sparcv9,需要的sparcv9下的64库文件创建软连接即可。注意软连接是ln -s 源文件 目标文件,别搞错位置把源文件清空了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值