Ubuntu GCCコンパイルC++ファイルエラー.main.o: In function `__static_initialization_and_destruction_0':

3220 ワード

gcc -g -c main.cc	#gcc -lstdc++ -g -c main.cc			#    main.o
g++    -c -o printf1.o printf1.cc
g++    -c -o printf2.o printf2.cc
gcc -g main.o printf1.o printf2.o -o out #gcc -lstdc++ -g main.o printf1.o printf2.o -o out
main.o: In function `__static_initialization_and_destruction_0':
/usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::Init()'
/usr/include/c++/4.4/iostream:72: undefined reference to `std::ios_base::Init::~Init()'
main.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
printf1.o: In function `printf1()':
printf1.cc:(.text+0x11): undefined reference to `std::cout'
printf1.cc:(.text+0x16): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
printf1.cc:(.text+0x1e): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
printf1.cc:(.text+0x26): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
printf1.o: In function `__static_initialization_and_destruction_0(int, int)':
printf1.cc:(.text+0x4e): undefined reference to `std::ios_base::Init::Init()'
printf1.cc:(.text+0x53): undefined reference to `std::ios_base::Init::~Init()'
printf1.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
printf2.o: In function `printf2()':
printf2.cc:(.text+0x11): undefined reference to `std::cout'
printf2.cc:(.text+0x16): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::operator<< <std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*)'
printf2.cc:(.text+0x1e): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::endl<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&)'
printf2.cc:(.text+0x26): undefined reference to `std::basic_ostream<char, std::char_traits<char> >::operator<<(std::basic_ostream<char, std::char_traits<char> >& (*)(std::basic_ostream<char, std::char_traits<char> >&))'
printf2.o: In function `__static_initialization_and_destruction_0(int, int)':
printf2.cc:(.text+0x4e): undefined reference to `std::ios_base::Init::Init()'
printf2.cc:(.text+0x53): undefined reference to `std::ios_base::Init::~Init()'
printf2.o:(.eh_frame+0x12): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
make: *** [outcc] Error 1

このようなエラーが発生しました.ネットで資料を調べた.解決策は次のとおりです.
一、gccをg++コンパイラに変換してコンパイルすることができる.
二、gccを継続的に使用する場合、gccの後に-lstdc++を加えることができる.
コード:gcc-lstdc++
やった!の