带有c 17的`filesystem`在我的mac os x high sierra上不起作用

带有c 17的`filesystem`在我的mac os x high sierra上不起作用,第1张

概述我正在学习本教程: http://www.bfilipek.com/2017/08/cpp17-details-filesystem.html 检查新的c文件系统功能.但是我无法在我的机器上编译最小的例子: #include <string>#include <iostream>#include <filesystem>namespace fs = std::filesystem;in 我正在学习本教程:

http://www.bfilipek.com/2017/08/cpp17-details-filesystem.html

检查新的c文件系统功能.但是我无法在我的机器上编译最小的例子:

#include <string>#include <iostream>#include <filesystem>namespace fs = std::filesystem;int main(){    std::string path = "/";    for (auto & p : fs::directory_iterator(path))        std::cout << p << std::endl;}

我正在尝试编译它时使用XCode,Clion和命令行,但没有任何作用,我有版本9.3(9E145)与(看似正确的)项目设置,没有一个工作:


这是我对Clion的CMakeLists.txt文件:

cmake_minimum_required(VERSION 3.8)project(fileSystem2)set(CMAKE_CXX_STANDARD 17)add_executable(fileSystem2 main.cpp)

这是>的输出. gxx –version:

不过这是我从IDE获得的输出:



我做错了什么,我认为我的编译器应该支持c 17?

编辑

根据Owen Morgan的回答我已经安装了clang(实际的安装命令是brew install llvm),但它现在抱怨缺少string.h.有什么想法吗?

解决方法 Xcode附带的编译器支持C 17语言功能,但不支持C 17标准库功能.查看屏幕截图,您将看到标准库支持达到C 11,Apple尚未发布具有stdlib支持C 14或C 17的clang版本.

但是希望不会丢失!您可以从brew包管理器下载最新版本的clang.

brew install clang

然后,您可以通过将cmake编译器标志设置为自定义brew版本然后运行它来进行编译.

以下是如何执行此 *** 作的链接:http://antonmenshov.com/2017/09/09/clang-openmp-setup-in-xcode/

编辑:

安装llvm后,您需要将llvm路径链接到当前shell.我有一个shell脚本,我在工作中使用它来正确设置.希望这可以帮助.

#!/bin/bashbrew updatebrew install --with-toolchain llvm # llvm but with all the headersxcode-select --install # installs additional headers that you might be mimssing.echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.bash_profile # exports the custom llvm path into the shell sudo ln -s /usr/local/opt/llvm/bin/clang++ /usr/local/bin/clang++-brew # optional but I like to have a symlink set.

编辑2:

Clang 6.0没有< filesystem>包含在macOS上,但是你可以获得< experimental / filesystem>,并链接-lc实验,并使用std :: experimental :: filesystem而不是std :: filesystem.

最后的命令行调用:

Owen $/usr/local/Cellar/llvm/6.0.0/bin/clang fs.cpp -std = c 1z -L /usr/local/Cellar/llvm/6.0.0/lib/ -lc experimental

总结

以上是内存溢出为你收集整理的带有c 17的`filesystem`在我的mac os x high sierra上不起作用全部内容,希望文章能够帮你解决带有c 17的`filesystem`在我的mac os x high sierra上不起作用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1056965.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存