2010-10-27 210 views
8

我在嘗試運行示例項目時遇到鏈接器錯誤。你能讓我知道我該如何解決這個問題?鏈接器錯誤:未定義引用`std :: ctype <char> :: _ M_widen_init()

在此先感謝。

 
make[1]: Entering directory `/home/rumi/MobiusProject/Multiproc-Paper/Transformer/ssg' 
/usr/bin/g++ -w -DMOBIUS_LITTLE_ENDIAN -DMOBIUS_LINUX -m32 -o ssgGen_Linux -L../../lib/Linux_lib/ -L/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib -L/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/external/lib/Linux -L../../external/lib/Linux -lgenMain -lgen -lvary_num_compRangeStudy -lmulti_proc_PVPV -lmulti_procRJ -lmemory_moduleSAN -lcpu_moduleSAN -lio_port_moduleSAN -lerrorhandlersSAN -lTRex -lStudy -lPV -lComposer_RepJoin -lSAN -lbase -lstate -lmobutil -ldist -lstdc++ -lcrypto -lpthread -lm 

make[1]: Leaving directory `/home/rumi/MobiusProject/Multiproc-Paper/Transformer/ssg' 
make: Leaving directory `/home/rumi/MobiusProject/Multiproc-Paper/Transformer/ssg' 

/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libgenMain.a(Main.o): In function `commandline(int, char**, int&, char*&, char*&)': 
Main.cpp:(.text+0x494): undefined reference to `std::ctype::_M_widen_init() const' 
Main.cpp:(.text+0x4b1): undefined reference to `std::ctype::_M_widen_init() const' 
Main.cpp:(.text+0x584): undefined reference to `std::ctype::_M_widen_init() const' 
/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libgenMain.a(Main.o): In function `main': 
Main.cpp:(.text+0x894): undefined reference to `std::ctype::_M_widen_init() const' 
Main.cpp:(.text+0x8b4): undefined reference to `std::ctype::_M_widen_init() const' 
/home/rumi/Mobius/mobius/Mobius-2.3/Cpp/lib/Linux_lib/libStudy.a(BaseStudyClass.o):BaseStudyClass.cpp:(.text+0x5c4): more undefined references to `std::ctype::_M_widen_init() const' follow 
collect2: ld returned 1 exit status 
make[1]: *** [exec3] Error 1 
make: *** [opt] Error 2 

+2

http://mandriva.598463.n5.nabble.com/Bug-49433-gcc4-4-NEW-gcc4-4-misses-std-endl-implementation-at-O2-td669229.html – DumbCoder 2010-10-27 16:32:50

+1

也許libgenMain.a是用不同版本的'g ++'編譯的?您可能需要重新編譯該庫並/或確保所有編譯步驟使用相同的'g ++'版本。 – aschepler 2010-10-27 16:33:57

+0

有沒有什麼辦法可以知道用什麼版本的g ++來編譯某個庫? – mfr 2010-10-27 16:44:38

回答

8

看起來它是標準庫的一部分,在這裏不匹配。我能想到的兩個最可能的答案:

  • 您沒有編譯和鏈接整個項目(包括所有庫)與g ++的相同版本。
  • 您用於標準庫不匹配的標題/庫路徑,而且您從一個庫版本獲取標題,但從另一個版本獲取.so庫。
相關問題