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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu下 GCC编译程序出现 undefined reference to `std::ios_base::Init::Init()'问题相关的知识,希望对你有一定的参考价值。

网上的解释是:“ you need to add -lstdc++, or use ‘g++‘ rather than ‘gcc‘ as your driver program.”,也就是说如果想要使用g++编译程序的话,那么链接时需要添加“-Istdc++”。

我试了一下 , 在链接时加上"-Istdc++",就没有问题了。

关于g++,让我想起了,在ubuntu下一开始安装完code::blocks的时候,提示需要安装g++。原来code::blocks内置编译器使用的是g++,但是为什么在建工程的时候,提示使用的编译器是gcc呢??

这就引来了一个问题:“gcc和g++的区别和联系是什么?”网上搜了一下“gcc和g++”(http://www.yuanma.org/data/2007/0406/article_2498.htm),整理下来有这么几条是有用的:

(1)gcc和g++都是GNU(组织)的一个编译器。

(2)后缀名为.c的程序和.cpp的程序g++都会当成是c++的源程序来处理。而gcc不然,gcc会把.c的程序处理成c程序。

(3)对于.cpp的程序,编译可以用gcc/g++,而链接可以用g++或者gcc -lstdc++。(个人觉得这条是最重要的)

以上是关于ubuntu下 GCC编译程序出现 undefined reference to `std::ios_base::Init::Init()'问题的主要内容,如果未能解决你的问题,请参考以下文章

GCC编译连接问题stl_algobase.h:343: undefined reference to

gcc编译出现 undefined reference to ‘pthread_create‘ 的解决方法

gcc编译出现 undefined reference to ‘pthread_create‘ 的解决方法

ubuntu下调试ffmpeg程序出现undefined reference to pthread_once ,undefined reference to uncompress错误

ubuntu下安装gcc

关于在linux下出现stdio.h文件不存在等gcc标准库不能找到的解决的方法