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月)。