项目中AIX移植到Solaris上所碰到问题及解决方法_VMware, Unix及操作系统讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  VMware, Unix及操作系统讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 5721 | 回复: 0   主题: 项目中AIX移植到Solaris上所碰到问题及解决方法        上一篇   下一篇 
    本主题由 Administrator 于 2014-9-19 21:36:31 移动
ya.li
注册用户
等级:新兵
经验:66
发帖:1
精华:0
注册:1970-1-1
状态:离线
发送短消息息给ya.li 加好友    发送短消息息给ya.li 发消息
发表于: IP:您无权察看 2014-9-19 10:51:00 | [全部帖] [楼主帖] 楼主

上星期在做海南方面的一个项目,客户用C++开发的64位应用程序,里面涉及Oracle9, Tuxedo 8.1,原来运行在AIX平台上,现在尝试把应用程序移植到Solaris平台上,由于之前测试环境还未装好Solaris 10和Sun studio 11, 所以我们只能使用旧的操作系统Solaris 9和Sun workshop 6 update 2.

首先碰到的问题是客户移植了应用过来,但在编译的时候却碰到:

ld: fatal: file CASH_BILL.o: wrong ELF class: ELFCLASS64
ld: fatal: File processing errors. No output written to CASH_BILL


这个问题看起来是64位应用和32位应用不兼容的问题,检查了客户应用程序,Oracle library, Tuxedo.

对待客户应用程序的目标文件:

file *.o
C_DB_ERRMSG_PROCESS.o: ELF 64-bit MSB relocatable SPARCV9 Version 1 C_OCCI_DBACCESS.o: ELF 64-bit MSB relocatable SPARCV9 Version 1


对应客户的静态链接库:

elfdump libbobase.a
ELF Header
ei_magic: { 0x7f, E, L, F } ei_class: ELFCLASS64
ei_data: ELFDATA2MSB e_machine: EM_SPARCV9
e_version: EV_CURRENT e_type: ET_REL
e_flags: [ EF_SPARCV9_TSO ]
..........


对应Oracle打命令file *.so:

libskgxp9.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped libskgxpd.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped
libskgxpu.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped libtracepls9.so: ELF 64-bit MSB dynamic lib SPARCV9 Version 1, dynamically linked, not stripped libvppdc.so:
................


对应Tuxedo打 file *.so:

libjconv.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libticudata.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libticui18n.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically linked, not stripped
libticuuc.so: ELF 32-bit MSB dynamic lib SPARC Version 1, dynamically
.................


和客户聊过后,知道Tuxedo是以32位形式装的,应该是32位Tuxedo和64位应用不兼容,于是叫客户下载64位Tuxedo安装,并重新设置环境和重编译.

ELFClass64得以解决,但却碰到新的一堆Undefined Symbol问题:

在Tuxedo调用buildserver命令时使用Workshop CC编译器时发现

make -f ./Makefile SVC="CASH_BILL,REVERSE_BILL,BAL_TRANSFER,AUTO_BILLING,ROLL_BAL_TRANS,DISP_DEPOSIT" OBJS="CASH_BILL.o" EXE=CASH_BILL build_server
=======[ CASH_BILL ]=======
buildserver -f "-AA" -o CASH_BILL -v -s CASH_BILL,REVERSE_BILL,BAL_TRANSFER,AUTO_BILLING,ROLL_BAL_TRANS,DISP_DEPOSIT -f "CASH_BILL.o" -f "-L/acct/tibs_bill/public -llocalpublic -L/acct/tibs_bill/component -lcomponent -L/acct/tibs_bill/bointerface/lib -lbobase -L/acct/tibs_bill/bointerface/lib -lbohandler -L/acct/tibs_bill/bointerface/lib -lbohelper" -f "-L/oracle9i/OraHome1/lib/ -L/oracle9i/OraHome1/rdbms/lib/ -L/acct/tibs_bill/bointerface/lib -locci9 -lclntsh `cat /oracle9i/OraHome1/lib/sysliblist` -lm" -f "-lmcci -lnon_ws_mcci -ltxml"
cc -xarch=v9 -w -I$TUXDIR/include -o CASH_BILL BS-1771.c -L${TUXDIR}/lib -AA CASH_BILL.o -L/acct/tibs_bill/public -llocalpublic -L/acct/tibs_bill/component -lcomponent -L/acct/tibs_bill/bointerface/lib -lbobase -L/acct/tibs_bill/bointerface/lib -lbohandler -L/acct/tibs_bill/bointerface/lib -lbohelper -L/oracle9i/OraHome1/lib/ -L/oracle9i/OraHome1/rdbms/lib/ -L/acct/tibs_bill/bointerface/lib -locci9 -lclntsh -lnsl -lsocket -lgen -ldl -lm -lmcci -lnon_ws_mcci -ltxml -ltux -lbuft -lfml -lfml32 -lengine -R/usr/lib/lwp -lpthread -lposix4 -lsocket -lnsl
Undefined first referenced
symbol in file
__1cG__CrunKpure_error6F_v_ /acct/tibs_bill/component/libcomponent.a(C_OCCI_DBACCESS.o)
__1cDstdGvector4CpnPT_DUEADJUSTINFO_n0AJallocator4C2___2G6Mrk3_r3_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cGoracleEocciJgetVector4nPT_REVERSERECORD__6Frkn0BHAnyData_rnDstdGvector4CpTAn0EJallocator4C7_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdNbasic_ostream4Ccn0ALchar_traits4Cc___2l6MI_r1_ /acct/tibs_bill/bointerface/lib/libbobase.a(DOMTreeErrorReporter.o)
__1cGoracleEocciJsetVector4nLT_STAFFINFO__6Frn0BHAnyData_rknDstdGvector4CpTAn0EJallocator4C6_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cGC_DateItoString6Mpc_1_ /acct/tibs_bill/component/libcomponent.a(C_DEPOSIT_CONFER_PROCESS.o)
__1cGoracleEocciJgetVector4nNT_PAYMENTPLAN__6Frkn0BHAnyData_rnDstdGvector4CpTAn0EJallocator4C7_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdGvector4CpnTT_BALANCESOURCEINFO_n0AJallocator4C2___2G6Mrk3_r3_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdGvector4CpnYT_BALANCEITEMGROUPMEMBER_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_BALANCE_FEE_COMPARE.o)
__1cGoracleEocciJgetVector4nTT_ACCTBALANCEDETAIL__6Frkn0BHAnyData_rnDstdGvector4CpTAn0EJallocator4C7_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdGvector4CpnST_CONFERRULEDETAIL_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_DEPOSIT_CONFER_PROCESS.o)
__1cLNumber2cSTR6FrknGoracleEocciGNumber__pc_ /acct/tibs_bill/component/libcomponent.a(C_INVOICE_INTERFACE_PROCESS.o)
__1cDstdGvector4CpnNT_PAYMENTPLAN_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_PAYMENT_PLAN_PROCESS.o)
__1cDstdMout_of_range2T6M_v_ CASH_BILL.o
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2G6Mpkc_r1_ CASH_BILL.o
__1cDstdGvector4CpnOT_DUEPRICERULE_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_DUE_MGR_PROCESS.o)
__1cDstdGvector4CpnPT_TRUSTSENDINFO_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_INVOICE_BILL_PROCESS.o)
__1cDstdGvector4CpnNT_PAYMENTINFO_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_ACCT_BALANCE_MGR.o)
__1cDstdGvector4CpnPT_TRUSTBANKINFO_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_DB_TRUST_BANK.o)
__1cGoracleEocciJsetVector4nUT_PAYMENTMETHODGROUP__6Frn0BHAnyData_rknDstdGvector4CpTAn0EJallocator4C6_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdEcopy4CppnGT_ROLE_C3_6FTA4TB_5_ /acct/tibs_bill/component/libcomponent.a(C_STAFF_AUTH_PROCESS.o)
__1cGoracleEocciJgetVector4nPT_BALANCEPAYOUT__6Frkn0BHAnyData_rnDstdGvector4CpTAn0EJallocator4C7_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cGoracleEocciJsetVector4nRT_DAILYREPORTINFO__6Frn0BHAnyData_rknDstdGvector4CpTAn0EJallocator4C6_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdEcopy4CppnKT_BILLINFO_C3_6FTA4TB_5_ /acct/tibs_bill/component/libcomponent.a(C_ACCT_BALANCE_MGR.o)
__1cDstdGvector4CpnKT_PLATFORM_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_DEPOSIT_CONFER_PROCESS.o)
__1cG__CrunIex_alloc6FL_pv_ CASH_BILL.o
__1cDstdGvector4CpnUT_PAYMENTMETHODGROUP_n0AJallocator4C2___2G6Mrk3_r3_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cG__CrunIex_throw6Fpvpkn0AQstatic_type_info_pF1_v_v_ CASH_BILL.o
__1cGoracleEocciJgetVector4nOT_BILLINGCYCLE__6Frkn0BHAnyData_rnDstdGvector4CpTAn0EJallocator4C7_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdGvector4CpnOT_RETURNOBJECT_n0AJallocator4C2___2G6Mrk3_r3_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cGoracleEocciJsetVector4nST_VALBALANCEDETAIL__6Frn0BHAnyData_rknDstdGvector4CpTAn0EJallocator4C6_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2G6Mrk1_r1_ CASH_BILL.o
__1cDstdZ__RTTI__1nDstdJexception__ CASH_BILL.o
__1cMfreeHashList6FppnGlist_s__v_ /acct/tibs_bill/component/libcomponent.a(C_DB_DUE_MGR_PROCESS.o)
__1cGoracleEocciJsetVector4nPT_BALANCEPAYOUT__6Frn0BHAnyData_rknDstdGvector4CpTAn0EJallocator4C6_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cDstdEcopy4CppnUT_CONDITIONREFOBJECT_C3_6FTA4TB_5_ /acct/tibs_bill/component/libcomponent.a(C_ACCT_BALANCE_MGR.o)
__1cDstdGvector4CpnQT_REPRINTINVOICE_n0AJallocator4C2___M__insert_aux6Mp2rk2_v_ /acct/tibs_bill/component/libcomponent.a(C_BILL_PROCESS.o)
__1cDstdObasic_ofstream4Ccn0ALchar_traits4Cc___2T6M_v_ /acct/bea/tuxedo/tuxedo8.1/lib/libtxml.so
__1cGoracleEocciJsetVector4nTT_INVOICERECORDINFO__6Frn0BHAnyData_rknDstdGvector4CpTAn0EJallocator4C6_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cGoracleEocciJgetVector4nST_VALBALANCEDETAIL__6Frkn0BHAnyData_rnDstdGvector4CpTAn0EJallocator4C7_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
__1cGoracleEocciJgetVector4nTT_INVOICERECORDINFO__6Frkn0BHAnyData_rnDstdGvector4CpTAn0EJallocator4C7_____v_ /acct/tibs_bill/bointerface/lib/libbohelper.a(Billoccitype.o)
.............


这一堆错误大概有四百多个都是在客户自己生成的静态链接库里面的目标文件找不到一些函数,估计是把目标文件打包成静态链接库出现了问题,于是检查makefile, 发现:

发现Makefile里面打包时使用了ar的命令

AR=ar -r


而根据Workshop的Manual,是建议使用CC的选项-xar来打包的,所以改为:

AR=CC -xar -o
#AR=ar -r


然后重新编译, 发现少了一大堆错误, 但依然存在其他的错误:

make -f ./Makefile SVC="GET_FEE_INFO,GET_FEE_DETAIL,BILL_QUERY,PAYMENT_QUERY,GET_BAL_SRC,GET_VAL_BALANCE,GET_CONFER_INFO,BILL_HISTORY,REPRINT_QUERY" OBJS="CASH_ASSISTANT.o" EXE=CASH_ASSISTANT build_server
=======[ CASH_ASSISTANT ]=======
buildserver -f "-AA" -o CASH_ASSISTANT -v -s GET_FEE_INFO,GET_FEE_DETAIL,BILL_QUERY,PAYMENT_QUERY,GET_BAL_SRC,GET_VAL_BALANCE,GET_CONFER_INFO,BILL_HISTORY,REPRINT_QUERY -f "CASH_ASSISTANT.o" -f "-L/acct/tibs_bill/public -llocalpublic -L/acct/tibs_bill/component -lcomponent -L/acct/tibs_bill/bointerface/lib -lbobase -L/acct/tibs_bill/bointerface/lib -lbohandler -L/acct/tibs_bill/bointerface/lib -lbohelper" -f "-L/oracle9i/OraHome1/lib/ -L/usr/lib/sparcv9/ -lCrun -lCstd -L/oracle9i/OraHome1/rdbms/lib/ -locci9 -lclntsh `cat /oracle9i/OraHome1/lib/sysliblist` -lm" -f "-lmcci -lnon_ws_mcci -ltxml"
cc -xarch=v9 -w -I$TUXDIR/include -o CASH_ASSISTANT BS-398c.c -L${TUXDIR}/lib -AA CASH_ASSISTANT.o -L/acct/tibs_bill/public -llocalpublic -L/acct/tibs_bill/component -lcomponent -L/acct/tibs_bill/bointerface/lib -lbobase -L/acct/tibs_bill/bointerface/lib -lbohandler -L/acct/tibs_bill/bointerface/lib -lbohelper -L/oracle9i/OraHome1/lib/ -L/usr/lib/sparcv9/ -lCrun -lCstd -L/oracle9i/OraHome1/rdbms/lib/ -locci9 -lclntsh -lnsl -lsocket -lgen -ldl -lm -lmcci -lnon_ws_mcci -ltxml -ltux -lbuft -lfml -lfml32 -lengine -R/usr/lib/lwp -lpthread -lposix4 -lsocket -lnsl
Undefined first referenced
symbol in file
__1cGC_DateItoString6Mpc_1_ /acct/tibs_bill/component/libcomponent.a(C_DEPOSIT_CONFER_PROCESS.o)
__1cLNumber2cSTR6FrknGoracleEocciGNumber__pc_ /acct/tibs_bill/component/libcomponent.a(C_INVOICE_INTERFACE_PROCESS.o)
__1cMfreeHashList6FppnGlist_s__v_ /acct/tibs_bill/component/libcomponent.a(C_DB_DUE_MGR_PROCESS.o)
__1cDstdObasic_ofstream4Ccn0ALchar_traits4Cc___2T6M_v_ /acct/bea/tuxedo/tuxedo8.1/lib/libtxml.so
__1cDstdNbasic_ostream4Ccn0ALchar_traits4Cc___Fwrite6Mpkcl_r1_ /acct/bea/tuxedo/tuxedo8.1/lib/libtxml.so
__1cMinitHashList6FpppnGlist_s__v_ /acct/tibs_bill/component/libcomponent.a(C_DB_DUE_MGR_PROCESS.o)
__1cG__CrunKvector_des6FpvLLpF1_v_v_ /acct/bea/tuxedo/tuxedo8.1/lib/libticuuc.so
__1cG__CrunKvector_del6FpvLpF1_v_1_ /opt/SUNWspro/WS6U2/lib/v9/libCstd.a(locale.o)
__1cGC_Date2t6M_v_ /acct/tibs_bill/component/libcomponent.a(C_DEPOSIT_CONFER_PROCESS.o)
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2t6Mrk1LLrkn0C__v_ /oracle9i/OraHome1/lib//libocci9.a(occiEnvImpl.o)
__1cGC_Date2T6M_v_ /acct/tibs_bill/component/libcomponent.a(C_DEPOSIT_CONFER_PROCESS.o)
__1cG__CrunKvector_new6FpvLLpF1_vp2_1_ /opt/SUNWspro/WS6U2/lib/v9/libCstd.a(locale.o)
__1cGC_Date2d6Mrk0_i_ /acct/tibs_bill/component/libcomponent.a(C_DB_DUE_MGR_PROCESS.o)
__1cGC_Date2h6Mrk0_b_ /acct/tibs_bill/component/libcomponent.a(C_STAFF_AUTH_PROCESS.o)
__1cDstdObasic_ofstream4Ccn0ALchar_traits4Cc___Fclose6M_v_ /acct/bea/tuxedo/tuxedo8.1/lib/libtxml.so
__1cOsearchHashList6FppnGlist_s_pcpvpFpkv6_i_4_ /acct/tibs_bill/component/libcomponent.a(C_DB_DUE_MGR_PROCESS.o)
__1cGC_Date2t6Mpc1_v_ /acct/tibs_bill/component/libcomponent.a(C_STAFF_AUTH_PROCESS.o)
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___M__sun_concat6kMrk1_1_ /oracle9i/OraHome1/lib//libocci9.a(occiEnvImpl.o)
__1cOinsertHashList6FppnGlist_s_pkcpvi_i_ /acct/tibs_bill/component/libcomponent.a(C_DB_DUE_MGR_PROCESS.o)
__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___M__sun_concat6kMpkc_1_ /oracle9i/OraHome1/lib//libocci9.a(occiEnvImpl.o)
__1cGC_DateKgetCurDate6M_v_ /acct/tibs_bill/component/libcomponent.a(C_DEPOSIT_CONFER_PROCESS.o)
__1cGC_DateHdiffMon6Mr0_i_ /acct/tibs_bill/component/libcomponent.a(C_CONDITION_MGR.o)
__1cGC_DateGaddDay6Mi_v_ /acct/tibs_bill/component/libcomponent.a(C_STAFF_AUTH_PROCESS.o)
__1cDstdObasic_ofstream4Ccn0ALchar_traits4Cc___Eopen6Mpkcil_v_ /acct/bea/tuxedo/tuxedo8.1/lib/libtxml.so
__1c2N6FL_pv_ /opt/SUNWspro/WS6U2/lib/v9/libCstd.a(ios.o)
__1cDstdObasic_ofstream4Ccn0ALchar_traits4Cc___2t6M_v_ /acct/bea/tuxedo/tuxedo8.1/lib/libtxml.so
ld: fatal: Symbol referencing errors. No output written to CASH_ASSISTANT
CMDTUX_CAT:1832: ERROR: can't execute cc -xarch=v9 -w -I$TUXDIR/include -o CASH_ASSISTANT BS-398c.c -L${TUXDIR}/lib -AA CASH_ASSISTANT.o -L/acct/tibs_bill/public -llocalpublic -L/acct/tibs_bill/component -lcomponent -L/acct/tibs_bill/bointerface/lib -lbobase -L/acct/tibs_bill/bointerface/lib -lbohandler -L/acct/tibs_bill/bointerface/lib -lbohelper -L/oracle9i/OraHome1/lib/ -L/usr/lib/sparcv9/ -lCrun -lCstd -L/oracle9i/OraHome1/rdbms/lib/ -locci9 -lclntsh -lnsl -lsocket -lgen -ldl -lm -lmcci -lnon_ws_mcci -ltxml -ltux -lbuft -lfml -lfml32 -lengine -R/usr/lib/lwp -lpthread -lposix4 -lsocket -lnsl
*** Error code 1
make: Fatal error: Command failed for target `build_server'
Current working directory /latn/acct/tibs_bill/server
*** Error code 1
make: Fatal error: Command failed for target `CASH_ASSISTANT'


使用命令:

nm (object or library) | grep Symbol | c++filt


可以看出一些基本的C++标准库没找到,所以又在makefile里面的CFLAGS里面加入了:

-library=iostream -library=Cstd -library=Crun


这样重新编译,就只剩下两个错误:

make -f ./Makefile SVC="CASH_BILL,REVERSE_BILL,BAL_TRANSFER,AUTO_BILLING,ROLL_BAL_TRANS,DISP_DEPOSIT" OBJS="CASH_BILL.o" EXE=CASH_BILL build_server
=======[ CASH_BILL ]=======
CFLAGS="-g -mt -xarch=v9a -library=iostream -library=Cstd -library=Crun" buildserver -o CASH_BILL -v -s CASH_BILL,REVERSE_BILL,BAL_TRANSFER,AUTO_BILLING,ROLL_BAL_TRANS,DISP_DEPOSIT -f "CASH_BILL.o" -f "/latn/acct/tibs_bill/public/*.o" -f "-L/latn/acct/tibs_bill/public -llocalpublic -L/latn/acct/tibs_bill/component -lcomponent -L/latn/acct/tibs_bill/bointerface/lib -lbobase -L/latn/acct/tibs_bill/bointerface/lib -lbohandler -L/latn/acct/tibs_bill/bointerface/lib -lbohelper" -f "-L/oracle9i/OraHome1/lib/ -L/oracle9i/OraHome1/lib/ -locci9 -lclntsh `cat /oracle9i/OraHome1/lib/sysliblist` -lm" -f "-lmcci -lnon_ws_mcci -ltxml"
CC -xarch=v9 -w -g -mt -xarch=v9a -library=iostream -library=Cstd -library=Crun -I$TUXDIR/include -o CASH_BILL BS-362a.c -L${TUXDIR}/lib CASH_BILL.o /latn/acct/tibs_bill/public/*.o -L/latn/acct/tibs_bill/public -llocalpublic -L/latn/acct/tibs_bill/component -lcomponent -L/latn/acct/tibs_bill/bointerface/lib -lbobase -L/latn/acct/tibs_bill/bointerface/lib -lbohandler -L/latn/acct/tibs_bill/bointerface/lib -lbohelper -L/oracle9i/OraHome1/lib/ -L/oracle9i/OraHome1/lib/ -locci9 -lclntsh -lnsl -lsocket -lgen -ldl -lm -lmcci -lnon_ws_mcci -ltxml -ltux -lbuft -lfml -lfml32 -lengine -R/usr/lib/lwp -lpthread -lposix4 -lsocket -lnsl
Undefined first referenced
symbol in file
std::basic_string<char,std::char_traits<char>,std::allocator<char> >std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__sun_concat(const std::basic_string<char,std::char_traits<char>,std::allocator<char> >&)const /oracle9i/OraHome1/lib//libocci9.a(occiEnvImpl.o)
std::basic_string<char,std::char_traits<char>,std::allocator<char> >std::basic_string<char,std::char_traits<char>,std::allocator<char> >::__sun_concat(const char*)const /oracle9i/OraHome1/lib//libocci9.a(occiEnvImpl.o)
ld: fatal: Symbol referencing errors. No output written to CASH_BILL
CMDTUX_CAT:1832: ERROR: can't execute CC -xarch=v9a -w -g -mt -library=iostream -library=Cstd -library=Crun -I$TUXDIR/include -o CASH_BILL BS-362a.c -L${TUXDIR}/lib CASH_BILL.o /latn/acct/tibs_bill/public/*.o -L/latn/acct/tibs_bill/public -llocalpublic -L/latn/acct/tibs_bill/component -lcomponent -L/latn/acct/tibs_bill/bointerface/lib -lbobase -L/latn/acct/tibs_bill/bointerface/lib -lbohandler -L/latn/acct/tibs_bill/bointerface/lib -lbohelper -L/oracle9i/OraHome1/lib/ -L/oracle9i/OraHome1/lib/ -locci9 -lclntsh -lnsl -lsocket -lgen -ldl -lm -lmcci -lnon_ws_mcci -ltxml -ltux -lbuft -lfml -lfml32 -lengine -R/usr/lib/lwp -lpthread -lposix4 -lsocket -lnsl
*** Error code 1
make: Fatal error: Command failed for target `build_server'
Current working directory /latn/acct/tibs_bill/server
*** Error code 1
make: Fatal error: Command failed for target `CASH_BILL'


但这两个错误看起来也是C++标准库里面的函数,我们已经把这个库Link到程序中去了,所以感觉应该象是个BUG,就查了下sunsolve.sun.com, 发觉还真有Patch可以解决这个bug.

该贴由system转至本版2014-9-19 21:36:31




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论