g++指定-std=c++17后无法使用std::filesystem的问题求助
C++17 filesystem库编译错误的解决方法
未包含
<filesystem>头文件:代码中使用std::filesystem前必须包含对应头文件,在代码开头添加:#include <filesystem>需要显式链接filesystem库:部分环境下g++ 11.4.0仍需手动链接
libstdc++fs库,编译命令修改为:g++ -std=c++17 fstesting.cc -lstdc++fsMakefile中要在链接规则里加入
-lstdc++fs参数。验证C++版本是否生效:如果以上方法无效,检查C++17是否正确启用,执行以下命令查看预定义宏:
g++ -std=c++17 -dM -E - < /dev/null | grep __cplusplus输出应为
#define __cplusplus 201703L,若不是则说明编译参数未正确生效,需检查Makefile或编译命令中是否有其他覆盖-std=c++17的设置。
内容的提问来源于stack exchange,提问作者Elliot Lacinai
相关产品推荐
相关产品推荐

