1. 程式人生 > >solaris10g++編譯程式連結時候報錯symbol referencing errors

solaris10g++編譯程式連結時候報錯symbol referencing errors

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 原始檔 目標檔案,別搞錯位置把原始檔清空了。