2010-01-13 34 views
1

我到達最後一個鏈接命令(實際的可執行文件正在鏈接),但我得到一個未定義符號的BUNCH(並且它們在cpp中並且看起來對我來說簡直就是個可怕的c程序員)鏈接錯誤:未定義符號,其中很多(cpp交叉編譯)

- 它可能是簡單的東西,但我不能得到我應該把它作爲鏈接器(它在這裏使用gcc ...?是否合適?g ++告訴我太多輸入文件笑)(LD返回大致相同的)

反正它的荒謬,我完全卡住

謝謝你們的幫助!

make 
Making all in docs 
Making all in en 
make[2]: Nothing to be done for `all'. 
make[2]: Nothing to be done for `all-am'. 
/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.0 -arch armv6 -pipe -std=c99 -Wno-trigraphs -fpascal-strings -fasm-blocks -Wreturn-type -Wunused-variable -fmessage-length=0 -fvisibility=hidden -miphoneos-version-min=2.0 -gdwarf-2 -mthumb -miphoneos-version-min=2.0 -I../include -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.2.sdk -O0 -arch armv6 -pipe -std=c99 -gdwarf-2 -mthumb -I../include -L../libs -L../../libs -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS2.0.sdk -L/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/usr/lib -o mutella -L/usr/local/lib uilocalsocket.o gnumarkedfiles.o uitextmode.o sha1.o sha1thread.o gnuwordhash.o gnulogcentre.o asyncdns.o gnuwebcache.o uiterminal.o uiremote.o asyncproxysocket.o messages.o lineinput.o rcobject.o event.o term_help.o mprintf.o readline4fix.o asyncfile.o tstring.o dir.o inifile.o property.o byteorder.o mui.o gnusearch.o mthread_unix.o asyncsocket.o controller.o preferences.o packet.o gnuupload.o gnusock.o gnushare.o gnunode.o gnuhash.o gnudownload.o gnudirector.o gnucache.o conversions.o common.o main.o -lpthread -lreadline -lcurses -lpoll -lz 
Undefined symbols: 
    "std::__throw_bad_alloc()", referenced from: 
     __gnu_cxx::new_allocator<std::_List_node<MUILSocketCommunicate*> >::allocate(unsigned long, void const*)in uilocalsocket.o 
     __gnu_cxx::new_allocator<SMarkedFile>::allocate(unsigned long, void const*)in gnumarkedfiles.o 
     __gnu_cxx::new_allocator<std::_List_node<long> >::allocate(unsigned long, void const*)in gnumarkedfiles.o 
     __gnu_cxx::new_allocator<std::_Rb_tree_node<TString<char> > >::allocate(unsigned long, void const*)in gnumarkedfiles.o 
     __gnu_cxx::new_allocator<std::_Rb_tree_node<long> >::allocate(unsigned long, void const*)in gnumarkedfiles.o 
     __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<long const, MFileSizeClass> > >::allocate(unsigned long, void const*)in gnumarkedfiles.o 

回答

4

似乎您試圖將C++代碼與C(gcc)鏈接程序調用相關聯。這不包括正是你所看到的適當的庫。嘗試g ++而不是gcc(或者拋出C++代碼/庫)。

+0

謝謝你(我的確在google上閱讀過這個!試過了,但是我選擇了'錯誤的'g ++)再次完成了它,並且它很有魅力。我有我想要的exe文件,但我有另一個q:當我嘗試更改配置腳本中的cpp編譯器時,它說g ++ im使用失敗'完整性檢查'我檢查config.log但沒有幫助:S也因爲make腳本想要使用gcc,我怎樣才能改變它始終使用g ++在這一端連接?感謝你的幫助! – lol 2010-01-13 12:30:04

+0

這聽起來像你可以接受這個答案,並提出一個新的問題。 – 2010-01-13 12:52:16

4

添加-lstdc++或使用g ++進行鏈接。

+0

賓果謝謝! – lol 2010-01-14 10:46:23

相關問題