雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

linux中gcc/g++编译时报错 fatal error: codecvt: No such file or directory

2024-06-13 175

问题描述

最近在centos中g++编译一个C++的源码时,遇到报“fatal error: codecvt: No such file or directory”的错误。查阅codecvt资料后发现,codecvt为c++标准库头文件(示例代码),其起到封装字符串的转换,包括宽和多字节,从一种编码到另一种的作用。

解决方法

从网上的一些帖子上看到,codecvt库只有C++11及以上的标准才支持,需要在编译时gcc或g++命令后添上“-std=c++11”,或在makefile文件中修改,添加命令使gcc/g++默认支持C++11标准,试验后发现仍然报错。然后,看到老外的一篇帖子,只有gcc 5.0以上的版本才能完全支持C++11标准,我看了下我的gcc/g++版本是4.8.5版本,因此尝试升级gcc。
整理了一下gcc、libc、libstdc++的关系,大概了解了gcc,g++与 libstdc++的关系。
参考gcc 5.4 默认不支持c++11,可知gcc支持C++11,但默认不支持。所以要在编译时加上-std=c++11 或者 -std=c++0x才可以,因此选择升级gcc6。
升级过程请参照另一篇帖子:https://www.cfnotes.com/archives/322
升级后编译就不再报错了。

更新于:5个月前
赞一波!1

文章评论

评论问答