小编Cur*_*ous的帖子

在 10.15 之前的 mac 版本上,llvm 9 是否支持 std::filesystem?

我有一台运行 El Capitan 版本 10.11.6 的旧 Mac(大约 2009 年)。Apple 不允许在我的机器上进一步更新其操作系统,但通过 Macports,它可以作为非 Apple 特定软件的良好开发环境。

我正在使用 g++ 9.2 进行编译,它支持开箱即用的 std::filesystem,而使用 clang 8.0 则不支持。(在每种情况下都使用每个编译器的本机标准库。)我正在使用 --std=c++2a 进行编译。

我注意到 llvm 9 应该支持开箱即用的 std::filesystem ( https://libcxx.llvm.org/docs/UsingLibcxx.html#using-filesystem ),所以我通过 Macports 下载了 clang/llvm 9 . 不幸的是,我遇到了障碍。

重现错误的最小代码是来自 cppreference.com ( https://en.cppreference.com/w/cpp/filesystem/path/path )示例的简化

#include <filesystem>
#include <iostream>

namespace fs = std::filesystem;

int
main()
{
   fs::path p1 = "/usr/lib/sendmail.cf";

   std::cout << "p1 = " << p1 << '\n';
}
Run Code Online (Sandbox Code Playgroud)

这是 CmakeLists.txt

cmake_minimum_required(VERSION 3.15.5)
project(bug LANGUAGES CXX)
add_executable (bug main.cpp)
target_compile_options(bug PRIVATE "-std=c++2a") …
Run Code Online (Sandbox Code Playgroud)

c++ gcc llvm clang std-filesystem

5
推荐指数
1
解决办法
268
查看次数

标签 统计

c++ ×1

clang ×1

gcc ×1

llvm ×1

std-filesystem ×1