make编译时fatal error: codecvt: No such file or directory解决方法

3D入魔 / 2024-12-14 / 原文

用cmake在centos7中编译c++编译报错,信息如下

fatal error: codecvt: No such file or directory

codecvt为c++标准库头文件(示例代码),其起到封装字符串的转换,包括宽和多字节,从一种编码到另一种的作用。 最初从一些帖子上看到,codecvt库只有C++11标准及以上才支持,需要在编译时gcc后添上“-std=c++11”,或在makefile文件中修改,添加命令使gcc默认支持C++11标准,试验后发现不行。

改用gcc(g++)-8 devtoolset-8编译:

SET(CMAKE_C_COMPILER "/opt/rh/devtoolset-8/root/usr/bin/cc")

SET(CMAKE_CXX_COMPILER "/opt/rh/devtoolset-8/root/usr/bin/c++")

编译通过