2010-01-13 35 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

相关问题