2010-10-27 30 views
8

Tôi gặp phải lỗi trình liên kết trong khi cố chạy một dự án mẫu. Bạn có thể cho tôi biết làm thế nào tôi có thể sửa lỗi này?Lỗi liên kết: tham chiếu không xác định đến `std :: ctype <char> :: _ M_widen_init()

Xin cảm ơn trước.

 
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

+1

Có lẽ libgenMain.a được biên dịch với một phiên bản khác của 'g ++'? Bạn có thể cần phải biên dịch lại thư viện đó và/hoặc đảm bảo tất cả các bước biên dịch của bạn sử dụng cùng một phiên bản 'g ++'. – aschepler

+0

Có cách nào để biết phiên bản nào của g ++ được sử dụng để biên dịch một thư viện nào đó? – mfr

Trả lời

8

Dường như đó là một phần của thư viện chuẩn không khớp ở đây. Hai câu trả lời có khả năng nhất tôi có thể nghĩ đến:

  • Bạn không biên dịch và liên kết toàn bộ dự án (bao gồm tất cả thư viện) với cùng phiên bản g ++.
  • Đường dẫn tiêu đề/thư viện bạn đang sử dụng cho thư viện chuẩn không khớp và bạn sẽ nhận được tiêu đề từ một phiên bản thư viện nhưng thư viện .so từ một phiên bản khác.
Các vấn đề liên quan