如何在 Visual Studio 2015 中使用 clang 为 Windows 编译 C++
How to compile C++ for Windows with clang in Visual Studio 2015
据我了解,Visual Studio 2015 随 clang 一起提供。首先我虽然这只适用于 Android 和 iOS 应用程序,但根据 this article 也应该可以将 clang++ 前端用于 Windows 程序。但是,我找不到相应的选项。
所以请你向我解释一下,我如何在 c++ 项目(在 VS2015 RC 社区版中)中将使用的编译器更改为 clang。
据我了解,Clang 和 GCC 都随 Android 和 iOS 跨平台 SDKs/tools 一起提供 Visual Studio 2015。
据我所知,它只允许我在拥有这些跨平台项目之一时选择那些。
使用 GLES C++ 应用程序的模板项目,您可以获得以下选项:
而对于 Windows C++ 应用程序,您会看到下面的对话框,您可以在其中看到 Windows 目标平台呈灰色且只读,这意味着您可能为每个平台准备了一组工具包目标平台,但您根本无法更改它,至少目前是这样。
尽管不知道如何将普通 VS 项目转变为跨平台项目,但您很可能只能使用第 3 方编译器开箱即用地定位 Android 或 iOS。
不过,可以像安装 XP 工具包一样将 Clang 作为另一个工具包安装。因此,也许这只是有人摆弄它并使其在已安装的情况下可用的问题。
警告:这个答案是 VS2015 之前的更新 1,没有 "Clang with Microsoft CodeGen" 选项。
在阅读链接 post 尤其是评论后,我开始明白,这不是 VS2015 RC 附带的功能,而是未来可能的功能,例如在 SP 中或(更有可能)与下一版本的 VS 一起提供。
正如 sjdowling 所提到的,目前(2015 年 10 月,clang 3.7)你能做的最接近的事情是下载并安装 llvm for windows. This should give you a LLVM-vs2014 platform toolset option. For me it works for simple test programs, but apparently this version of "clang-vs" seems to not yet support exceptions. However, according to these notes,clang 3.8 应该主要解决这个问题。
从 VS2015 Update 1 开始,您可以通过新项目 window 安装“Clang with Microsoft CodeGen”模板,浏览至已安装 -> 模板 -> Visual C++ -> 跨平台。
然后您将能够在任何 Windows C++ 项目的属性页面中选择带有 Microsoft CodeGen v140_clang_3_7
平台工具集的 Clang 3.7。
Clang 具有一组完全不同的命令行选项,因此在使用 v140_clang_3_7
工具集时,项目属性必须使用与 Clang 兼容的选项,这些选项可以被识别为以 -
而不是 /
。例如,调试信息格式 属性 设置为“完整调试信息 (DWARF2) (-g2 -gdwarf-2
)”,启用 C++ 异常 属性 设置为“是 (-fexceptions
)” .
this blog post 中有更多信息。
虽然上述解决方案有效,但它们要求您安装 clang,它在 visual studio 2015 安装中默认处于关闭状态。接受的答案确实显示了如何安装它,尽管下一页会要求您关闭 visual studio 您是 运行 来自的新项目。
如果有人想知道如何安装 clang,因为它没有出现在他们的列表中,这里是另一个解决方案:
- 控制面板->程序->程序和功能。
- 右键单击“Microsoft Visual Studio Enterprise 2015”(或
“微软视觉
- Studio 15 Preview”如果有下个版本的预览
Visual Studio 已安装)
- 点击“更改”
- 点击“修改”
- Select“Clang with Microsoft CodeGen”——2016 年 3 月发布。
https://blogs.msdn.microsoft.com/vcblog/2016/03/31/clang-with-microsoft-codegen-march-2016-released/
据我了解,Visual Studio 2015 随 clang 一起提供。首先我虽然这只适用于 Android 和 iOS 应用程序,但根据 this article 也应该可以将 clang++ 前端用于 Windows 程序。但是,我找不到相应的选项。
所以请你向我解释一下,我如何在 c++ 项目(在 VS2015 RC 社区版中)中将使用的编译器更改为 clang。
据我了解,Clang 和 GCC 都随 Android 和 iOS 跨平台 SDKs/tools 一起提供 Visual Studio 2015。
据我所知,它只允许我在拥有这些跨平台项目之一时选择那些。
使用 GLES C++ 应用程序的模板项目,您可以获得以下选项:
而对于 Windows C++ 应用程序,您会看到下面的对话框,您可以在其中看到 Windows 目标平台呈灰色且只读,这意味着您可能为每个平台准备了一组工具包目标平台,但您根本无法更改它,至少目前是这样。
尽管不知道如何将普通 VS 项目转变为跨平台项目,但您很可能只能使用第 3 方编译器开箱即用地定位 Android 或 iOS。
不过,可以像安装 XP 工具包一样将 Clang 作为另一个工具包安装。因此,也许这只是有人摆弄它并使其在已安装的情况下可用的问题。
警告:这个答案是 VS2015 之前的更新 1,没有 "Clang with Microsoft CodeGen" 选项。
在阅读链接 post 尤其是评论后,我开始明白,这不是 VS2015 RC 附带的功能,而是未来可能的功能,例如在 SP 中或(更有可能)与下一版本的 VS 一起提供。
正如 sjdowling 所提到的,目前(2015 年 10 月,clang 3.7)你能做的最接近的事情是下载并安装 llvm for windows. This should give you a LLVM-vs2014 platform toolset option. For me it works for simple test programs, but apparently this version of "clang-vs" seems to not yet support exceptions. However, according to these notes,clang 3.8 应该主要解决这个问题。
从 VS2015 Update 1 开始,您可以通过新项目 window 安装“Clang with Microsoft CodeGen”模板,浏览至已安装 -> 模板 -> Visual C++ -> 跨平台。
然后您将能够在任何 Windows C++ 项目的属性页面中选择带有 Microsoft CodeGen v140_clang_3_7
平台工具集的 Clang 3.7。
Clang 具有一组完全不同的命令行选项,因此在使用 v140_clang_3_7
工具集时,项目属性必须使用与 Clang 兼容的选项,这些选项可以被识别为以 -
而不是 /
。例如,调试信息格式 属性 设置为“完整调试信息 (DWARF2) (-g2 -gdwarf-2
)”,启用 C++ 异常 属性 设置为“是 (-fexceptions
)” .
this blog post 中有更多信息。
虽然上述解决方案有效,但它们要求您安装 clang,它在 visual studio 2015 安装中默认处于关闭状态。接受的答案确实显示了如何安装它,尽管下一页会要求您关闭 visual studio 您是 运行 来自的新项目。
如果有人想知道如何安装 clang,因为它没有出现在他们的列表中,这里是另一个解决方案:
- 控制面板->程序->程序和功能。
- 右键单击“Microsoft Visual Studio Enterprise 2015”(或 “微软视觉
- Studio 15 Preview”如果有下个版本的预览 Visual Studio 已安装)
- 点击“更改”
- 点击“修改”
- Select“Clang with Microsoft CodeGen”——2016 年 3 月发布。
https://blogs.msdn.microsoft.com/vcblog/2016/03/31/clang-with-microsoft-codegen-march-2016-released/