五月发布的带Clang3.8 的Clang with Microsoft CodeGen

[原文发表地址]Clang 3.8 in the May release of Clang with Microsoft CodeGen [原文发表时间] 2016/06/03 Andrew Pardoe[MSFT] 这篇文章是由Dave Bartolomeo, Yuriy Solodkyy, 和 Andrew Pardoe 所写的。 我们刚刚已经发布了第五个Clang/C2工具的更新。 和往常一样,这次的更新也是基于你们的反馈。我们已经听到很多新功能的需求,其中我们听的最多的一个需求就是你们需要Clang3.8 和 x64 宿主机的编译器。 我们很高兴的告诉你们,我们已经将Clang3.8 和x64宿主机的编译器一起放在2016 五月份的发布中。 Clang3.8是最新官方发布的Clang编译器。Clang3.8包含大概六个月的新特性和来自Clang 社区的bug修复。我们还增加了x64宿主机版本的Clang/C2的编译器工具。这让你可以编译那些需要的内存是x86机器无法满足的工程. x64 的Clang/C2 工具会更加兼容那些用x64 MSVC 工具所编译的工程。 这篇博客主要集中讨论继上一个发布的版本之后的一些改变。更多详细关于Clang/C2工具的讨论请阅读“发布具有Microsoft CodeGen功能的Clang编译器(2016年3月)” 以及一些标签关键字为’clang’的博客。 这个新发布的版本中的C2.dll的版本是19.0.25317.0 如何使用x64 宿主机的Clang/C2 编译器 为了让你的Visual Studio工程转而使用x64 宿主工具,你需要设置MSBuild的属性‘PreferredToolArchitecture’为‘x64’。这会让你的工程使用整个x64宿主 C++工具,不管是你使用的Clang/C2 又或者是MSVC编译器。 现阶段无法在Visual Studio中强制使用64位的工具, 因此你不得不编辑更改你的.vcproj 文件。添加下面的一段在<Import …Microsoft…

0

Clang with Microsoft CodeGen 2016年1月)发布上线

[原文发表地址]Clang with Microsoft CodeGen (January 2016) released [原文发表时间]2016/1/21 2:34 AM 我们已经发布了一个带外的Clang/C2工具集,它包含了一些社区问题的修复和测试中发现的bugs。这是未来即将快速发布众多版本中的一个,来自用户的一些问题反馈会逐渐处理。这里我们只列出相较于之前版本的新变化, 更多关于Clang/C2工具的详细讨论,请参阅VS2015.1的Microsoft CodeGen in VS 2015 1。 这个更新仍然是基于Clang3.7的一些相关优选的社区问题修复,并且将C2.dll的版本修改为19.023413.0。 Microsoft Fixes 修复原子布尔类型std::atomic_flag,使其生成正确的静态代码. 修复了”Static Library for Universal Windows”模板在目标平台为ARM时,使用Clang/C2工具集的问题。 修复了Clang/C2 和Android MDD同时安装,共享的Clang编译器的目标定义文件被重写的问题。 改变了当从工具集Visual studio 2015(v140)切换到Clang/C2的一些默认参数, 使其更好的兼容新工具集(EH开启异常捕捉模式, PCH预定义头文件默认关闭)。 Community Fixes r254346 [PR25661]根据r254323, 恢复部分一部分r217213。 r254323 [MS Compat]在推演模板参数时,调整了之前的调用机制thiscall, 变为新的调用机制cdecl。 r253843 [MS ABI] 允许调用__RTDynamicCast。 r253523 [MS ABI] 让arbitrary entities加入 vftable的排列 r253013 [Sema]…

0

VS 2015 Update 1 中带微软代码生成的Clang

[原文发表地址]Clang with Microsoft CodeGen in VS 2015 Update 1 [原文发表时间] 2015/12/4 7:17 PM [这篇博客的作者是Dave Bartolomeo 和Clang/C2 团队的组员] 在开发和维护跨平台C++代码方面,其中一个改变就是针对不同平台的不同编译器的问题。 你写的一些针对Windows平台的代码,用Visual C++编译器可以编译成功,但那时你针对安卓平台的编译就会失败,那是因为Clang的标准规格更为严格,你的代码恰好是按照比较宽容的Visual C++编写的。又或者你针对iOS用了一些新的代码,Clang可以编译成功,但是才发现这些新的C++语言,Visual C++是还无法支持的,你只能想办法重新实现这个方法而不用这个新的语言特性,或者生成一个单独的能够用Visual C++编译的Windows实现方式。 为了能够更加方便的进行跨平台代码的开发,使在Windows 和其他平台更好的工作, 我们为Visual Studio单独发布了一个额外的编译工具集, 叫带微软代码生成的Clang编译器。这个编译器为C语言和C++语言使用开源的Clang解析,还有Visual C++ 编译工具的代码生成器和优化器。像对其他平台一样,你可以为Windows使用相同的Clang解析你的跨平台代码,还能够充分利用Visual C++优化器先进的优化功能。因为针对非Windows平台,新的工具也使用的是一样的Clang解析,你不需要在代码里写满令人讨厌的#ifdefs,只需要为不同的编译器说明下即可。同时你的代码中可以使用那些还没有被Visual C++ 编译器所支持的语言特性, 包括C99 复杂类型和C++ 14 扩展的constexpr的支持。因为基于Clang的编译器会长生和Visual C++编译器一样格式的调试的信息,所以你能感受到同样很棒的Visual Studio 调试器体验。 用新的编译工具所编译的代码能够和Visual C++ 2015 C和C++编译器所编译的其他代码相链接。通常,你可以使用带微软代码生成的Clang编译器来编译跨平台代码,用普通的Visual C++ 工具集来编译特定的Windows代码(例如,你的UI)。 请注意,带微软代码生成的Clang编译器现在是一个预览功能。 我们知道在很多方面它还不够完善,仍存在一些漏洞。我们希望你可以尝试使用这个新功能,明白它如在应用在你的代码工作上,并给我们反馈。 安装 在Visual Studio 2015 Update 1中,Visual Studio安装时开始进行功能选择时的UI界面,你会看到在“跨平台和手机开发\Visual…

0