在 Visual Studio 中的 clang 中启用 C++14
Enabling C++14 in clang in Visual Studio
我已经安装了clang 3.7,并且正在将其与Visual Studio一起使用。当我尝试编译时:
auto f()
{
return 2;
}
我收到错误说这是 C++14 的未来。我试图通过:
-std=c++14 作为编译器参数,但随后我收到错误:
1 错误:未知参数:"-std=c++14" C:\Users...\visual studio 2013\Projects\ConsoleApplication8\ConsoleApplication8\clang-cl.exe ConsoleApplication8。
任何想法如何在Visual Studio 14下启用c ++ 2013功能?
编辑:
我必须补充一点,我能够在Visual Studio下使用此编译器编译和构建c ++ 11代码,没有任何问题。
clang-cl
没有使用与传统clang相同的选项语法 - 它应该模仿Visual Studio的cl
命令行,而不是clang
的命令行。
例如,从clang-cl
的文档中:
CL.EXE COMPATIBILITY OPTIONS:
/? Display available options
/arch:<value> Set architecture for code generation
/C Don't discard comments when preprocessing
/c Compile only
/D <macro[=value]> Define macro
...
请注意,这些选项类似于Microsoft的cl
选项语法,而不是clang
的选项语法。
但是,他们有一些直通选项来支持像您这样的情况:
OPTIONS:
...
-Xclang <arg> Pass <arg> to the clang compiler
-mllvm <value> Additional arguments to forward to LLVM's option processing
因此,调用clang-cl -Xclang -std=c++14
似乎是您最好的选择。
我在clang-cl上工作。正如antiduh所说,clang-cl试图模仿Visual Studio的cl
。 cl
包括 C++14 之前都没有启用语言模式的开关,它只是始终启用所有最新内容。因此,clang-cl也是如此。MSVC 在 MSVC 2015 中获得了一些 C++14 支持,因此如果您告诉 clang-cl 您希望它模拟 MSVC 2015 或更高版本,它将自动启用 C++14。默认情况下,clang-cl 模拟系统上的 MSVC 版本。您可以显式传递-fmsc-version=1900
以强制模拟 2015,然后隐式启用 C++14。
截至 MSVC 2017,cl.exe 支持 /std:
标志,因此 clang-cl 也支持该标志。它可用于启用 C++14(最低级别)、C++17、C++20 或最新的已知版本。
-Xclang
标志是内部标志,不被视为稳定接口。所以不要使用这些。
- 编译时未启用intel oneApi CUDA支持
- 枚举环境变量的惯用C++14/C++17方法
- OpenGL在启用深度测试时不会丢弃我的碎片
- Visual C++GC接口如何启用它以及要包含哪个库
- 如何在自定义类中启用'auto loops'?
- 根据某个函数是否存在启用模板
- 视觉工作室 2017;启用 /permissive 时,类型 "const wchar_t *" 的参数与类型 "PWSTR" 的参数不兼容
- 错误的自动扣除 c++14
- 启用从"vector<const T>&"到"const vector&"的隐式转换<T>
- 访问和打印元组中的数据,并使用 C++14 使用模板函数显示数据
- C++ win32 如何使密码字段可选并启用复制和粘贴?
- C++14 中unordered_map矢量和擦除删除成语的奇怪行为
- 构建 TensorFlow r1.14 C++文件时缺少文件"tensorflow/core/framework/types.pb.h"
- 如何在 C++14 中处理此特定代码
- 如何使用MSVC 2019创建和使用Qt 5.14.0自定义小工具插件
- 如何使用 gcc 5.5 在 gdal 2.4 中启用 c++14
- 即使Visual Studio 14 2015 Win64工具链已启用,也将32位工具链用于编译
- 在Visual Studio 2015 Cmake中启用C 14
- 在 Visual Studio 中的 clang 中启用 C++14
- 启用 C++14 英特尔编译器