C++17 <filesystem>命名空间符号无法解析问题解决方法
C++17 符号无法解析问题解决
问题描述
- Symbol 'filesystem' could not be resolved(符号'filesystem'无法解析)
原有开发环境
- GCC/G++版本:9.2.0
- 启用C版本:C17
测试代码
#include <iostream> #include <filesystem> using namespace std; namespace fs = std::filesystem; int main(void) { return 0; }
此前已尝试过std::experimental版本的调用方案,未解决问题,目标为正常使用C++17标准的<filesystem> API。
解决方案
操作步骤如下:
- 下载MSYS2安装包(版本msys2-x86_64-20210725.exe)
- 运行安装程序,安装路径设置为
C:\Sw\msys64 - 执行命令
pacman -Syu更新系统 - 执行命令
pacman -Su升级所有软件包 - 执行命令
pacman -S --needed base-devel mingw-w64-x86_64-toolchain安装开发工具链 - 打开cmd命令行,进入路径
C:\Sw\msys64\mingw64\bin进行校验 - 执行
gcc -v查看版本,确认升级后为GCC v10.3.0 - 将
C:\Sw\msys64\mingw64\bin、C:\Sw\msys64\usr\bin两个路径添加到系统环境变量PATH中 - 重启所用的Eclipse开发环境
- 编译测试代码,确认
__cplusplus == 201703L即C++17环境已生效 - 即可正常调用filesystem相关API
内容的提问来源于stack exchange,提问作者J-Dizzle
相关产品推荐
相关产品推荐

