From: SourceForge.net <no...@so...> - 2005-10-27 17:38:12
|
Bugs item #1339752, was opened at 2005-10-27 13:38 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=1339752&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: awd (awdunstan) Assigned to: Nobody/Anonymous (nobody) Summary: Using std::map gives 'undefined reference' linker errors. Initial Comment: The following code will compile but not link. I get several 'undefined reference' errors: #include <map> #include <string> #include <iostream> using namespace std; int main() { map<string, int> a2i; a2i["hello"] = 1; a2i["world"] = 2; map<string, int>::const_iterator ci = a2i.begin(); for(; ci != a2i.end(); ++ci) cout << ci->first << " : " << ci->second << "\n"; return 0; } Compiling this with command line: g++ -Wall tst.cpp -o tst gives me this result: C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsiEEppEv[std::_Rb_tree_const_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >::operator++()]+0x13):tst.cpp: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base const*)' C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS2_[std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> const&)]+0x99):tst.cpp: undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)' C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt17_Rb_tree_iteratorISt4pairIKSsiEEmmEv[std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >::operator--()]+0x13):tst.cpp: undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)' collect2: ld returned 1 exit status The version of g++ I'm running is: g++ -v Reading specs from C:/MinGW4.1/bin/../lib/gcc/mingw32/3.4.2/specs Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug Thread model: win32 gcc version 3.4.2 (mingw-special) And the loader is: ld -v GNU ld version 2.15.91 20040904 I'm running Windows XP, SP2. If I change map to vector (& modify the code appropriately), it links and runs fine. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=1339752&group_id=2435 |
From: SourceForge.net <no...@so...> - 2005-10-27 20:44:35
|
Bugs item #1339752, was opened at 2005-10-28 06:38 Message generated for change (Comment added) made by dannysmith You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=1339752&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: awd (awdunstan) Assigned to: Nobody/Anonymous (nobody) Summary: Using std::map gives 'undefined reference' linker errors. Initial Comment: The following code will compile but not link. I get several 'undefined reference' errors: #include <map> #include <string> #include <iostream> using namespace std; int main() { map<string, int> a2i; a2i["hello"] = 1; a2i["world"] = 2; map<string, int>::const_iterator ci = a2i.begin(); for(; ci != a2i.end(); ++ci) cout << ci->first << " : " << ci->second << "\n"; return 0; } Compiling this with command line: g++ -Wall tst.cpp -o tst gives me this result: C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsiEEppEv[std::_Rb_tree_const_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >::operator++()]+0x13):tst.cpp: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base const*)' C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS2_[std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> const&)]+0x99):tst.cpp: undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)' C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt17_Rb_tree_iteratorISt4pairIKSsiEEmmEv[std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >::operator--()]+0x13):tst.cpp: undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)' collect2: ld returned 1 exit status The version of g++ I'm running is: g++ -v Reading specs from C:/MinGW4.1/bin/../lib/gcc/mingw32/3.4.2/specs Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug Thread model: win32 gcc version 3.4.2 (mingw-special) And the loader is: ld -v GNU ld version 2.15.91 20040904 I'm running Windows XP, SP2. If I change map to vector (& modify the code appropriately), it links and runs fine. ---------------------------------------------------------------------- >Comment By: Danny Smith (dannysmith) Date: 2005-10-28 09:44 Message: Logged In: YES user_id=11494 I think you are linking against an old version of libstdc++.a. Those _Rb_tree methods were introduced in gcc 3.4 Danny ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=1339752&group_id=2435 |
From: SourceForge.net <no...@so...> - 2005-10-28 13:05:39
|
Bugs item #1339752, was opened at 2005-10-27 13:38 Message generated for change (Comment added) made by awdunstan You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=1339752&group_id=2435 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed Resolution: None Priority: 5 Submitted By: awd (awdunstan) Assigned to: Nobody/Anonymous (nobody) Summary: Using std::map gives 'undefined reference' linker errors. Initial Comment: The following code will compile but not link. I get several 'undefined reference' errors: #include <map> #include <string> #include <iostream> using namespace std; int main() { map<string, int> a2i; a2i["hello"] = 1; a2i["world"] = 2; map<string, int>::const_iterator ci = a2i.begin(); for(; ci != a2i.end(); ++ci) cout << ci->first << " : " << ci->second << "\n"; return 0; } Compiling this with command line: g++ -Wall tst.cpp -o tst gives me this result: C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt23_Rb_tree_const_iteratorISt4pairIKSsiEEppEv[std::_Rb_tree_const_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >::operator++()]+0x13):tst.cpp: undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base const*)' C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EE9_M_insertEPSt18_Rb_tree_node_baseSA_RKS2_[std::_Rb_tree<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int>, std::_Select1st<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> > >::_M_insert(std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> const&)]+0x99):tst.cpp: undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)' C:\DOCUME~1\dunstan\LOCALS~1\Temp/cca2baaa.o(.text$_ZNSt17_Rb_tree_iteratorISt4pairIKSsiEEmmEv[std::_Rb_tree_iterator<std::pair<std::basic_string<char, std::char_traits<char>, std::allocator<char> > const, int> >::operator--()]+0x13):tst.cpp: undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)' collect2: ld returned 1 exit status The version of g++ I'm running is: g++ -v Reading specs from C:/MinGW4.1/bin/../lib/gcc/mingw32/3.4.2/specs Configured with: ../gcc/configure --with-gcc --with-gnu-ld --with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enable-hash-synchronization --enable-libstdcxx-debug Thread model: win32 gcc version 3.4.2 (mingw-special) And the loader is: ld -v GNU ld version 2.15.91 20040904 I'm running Windows XP, SP2. If I change map to vector (& modify the code appropriately), it links and runs fine. ---------------------------------------------------------------------- >Comment By: awd (awdunstan) Date: 2005-10-28 09:05 Message: Logged In: YES user_id=1369034 That was it! Turns out there were two versions of MinGW installed - 3.x & 4.1. Removing the 3.x fixed it. ---------------------------------------------------------------------- Comment By: Danny Smith (dannysmith) Date: 2005-10-27 16:44 Message: Logged In: YES user_id=11494 I think you are linking against an old version of libstdc++.a. Those _Rb_tree methods were introduced in gcc 3.4 Danny ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=102435&aid=1339752&group_id=2435 |