C++ 如何试用新的`<;执行>;`OSX上的标题?

C++ 如何试用新的`<;执行>;`OSX上的标题?,c++,macos,clang,C++,Macos,Clang,看到标题,想试试看 以下是我迄今为止所尝试的: brew安装cmake--HEAD brew安装llvm 已安装版本: $ /usr/local/opt/llvm/bin/clang++ --version clang version 7.0.0 (tags/RELEASE_700/final) Target: x86_64-apple-darwin17.7.0 Thread model: posix InstalledDir: /usr/local/opt/llvm/bin $ cma

看到
标题,想试试看

以下是我迄今为止所尝试的:

  • brew安装cmake--HEAD

  • brew安装llvm

已安装版本:

$ /usr/local/opt/llvm/bin/clang++ --version
clang version 7.0.0 (tags/RELEASE_700/final)
Target: x86_64-apple-darwin17.7.0
Thread model: posix
InstalledDir: /usr/local/opt/llvm/bin


$ cmake --version
cmake version 3.13.20181204-gb8db7
我想我可能弄错了cmake标志,所以尝试直接编译;这里有一个单独的一行程序应该可以工作:

CPPFLAGS=“-I/usr/local/opt/llvm/include”LDFLAGS=“-L/usr/local/opt/llvm/lib”/usr/local/opt/llvm/bin/clang++-std=c++17 foo.cpp

下面是我一直遇到的(顽固的!)错误:

致命错误:未找到“执行”文件

它抱怨的那句话:
#include

任何线索都非常感谢


编辑:我看到
/usr/local/opt/llvm/include/c++
中缺少标题,因此它当然不能与我拥有的内容一起工作(而且似乎在
实验性
中也不存在),是否有其他建议的方法将其安装到osx上?

回答我自己的问题:

我丢失了一个显式的
-std=c++17
标志(有趣的是,
-std=c++2a
不起作用!这可能没问题,但如果您希望该模式是c++17模式的超集,则有点令人惊讶)

无论如何,我可以确认以下几点对我来说很好:

CPPFLAGS="-I/usr/local/opt/llvm/include" \
LDFLAGS="-L/usr/local/opt/llvm/lib" \
/usr/local/opt/llvm/bin/clang++ \
-std=c++17 \
foo.cpp

你需要C++17,这意味着目前只支持MSVC。Clang应该已经有很多C++17支持:如果libc++没有支持,Clang支持就没有任何意义。Clang可以使用libstdc++但也没有执行(2019年4月)。