GCC编译程序出现 undefined reference to `std::ios_base::Init::Init()'问题

来源:互联网 发布:红外图谱数据库 编辑:程序博客网 时间:2024/05/20 18:50

在WINDOWS环境的CODE::BLOCKS里面写好的测试程序,想拿到Linux里面试验一把。报错: undefined reference to `std::ios_base::Init::Init()


1. 确认是否安装 gcc-c++的支持库

[root@ht168 ~]# rpm -qa| grep gcc
gcc-4.8.5-11.el7.x86_64
gcc-c++-4.8.5-11.el7.x86_64
libgcc-4.8.5-11.el7.x86_64
libgcc-4.8.5-11.el7.i686


2.  错误信息如下

[ecsmid@ht168 zhouc]$ gcc -m64 -o zhou while_test.cpp 
/tmp/ccIp6o1B.o: In function `main':
while_test.cpp:(.text+0x2d): undefined reference to `std::cout'
while_test.cpp:(.text+0x32): 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*)'
while_test.cpp:(.text+0x3e): undefined reference to `std::cin'
while_test.cpp:(.text+0x43): undefined reference to `std::istream::operator>>(int&)'
while_test.cpp:(.text+0x58): undefined reference to `std::basic_ios<char, std::char_traits<char> >::operator void*() const'
while_test.cpp:(.text+0x6c): undefined reference to `std::cout'
while_test.cpp:(.text+0x71): 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*)'
while_test.cpp:(.text+0x7e): undefined reference to `std::ostream::operator<<(int)'
/tmp/ccIp6o1B.o: In function `__static_initialization_and_destruction_0(int, int)':
while_test.cpp:(.text+0xaa): undefined reference to `std::ios_base::Init::Init()'
while_test.cpp:(.text+0xb9): undefined reference to `std::ios_base::Init::~Init()'


3. 解决:

Linux下面采用gcc 编译 c++的代码第一需要安装gcc-c++支持库,其次编译的时候需要添加参数 -lstdc++。正确的编译方式如下

[ecsmid@ht168 zhouc]$ gcc -m64 -lstdc++ -Wall -o zhou while_test.cpp 
[ecsmid@ht168 zhouc]$ 





阅读全文
0 0
原创粉丝点击