侧边栏壁纸
  • 累计撰写 185 篇文章
  • 累计创建 77 个标签
  • 累计收到 17 条评论

目 录CONTENT

文章目录

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

码峰
2023-06-09 / 0 评论 / 0 点赞 / 1,564 阅读 / 356 字 / 正在检测是否收录...
广告 广告

问题描述

最近在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
升级后编译就不再报错了。

0
广告 广告

评论区