彩票走势图

CLion 2020.3教程:如何在Windows上设置CLion的Clang编译器

翻译|使用教程|编辑:鲍佳佳|2020-12-08 10:03:40.233|阅读 555 次

概述:有了 CMake 3.15,在 Windows 上用 GNU 风格的命令行使用 Clang 编译器成为可能。这也意味着可以用Mingw-w64工具链来使用Clang。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

CLion是一款专为开发C及C++所设计的跨平台IDE。它是以IntelliJ为基础设计的,包含了许多智能功能来提高开发人员的生产力。这种强大的IDE帮助开发人员在Linux、OS X和Windows上来开发C/C++,同时它还使用智能编辑器来提高代码质量、自动代码重构并且深度整合CMake编译系统,从而提高开发人员的工作效率。

有了 CMake 3.15,在 Windows 上用 GNU 风格的命令行使用 Clang 编译器成为可能。这也意味着可以用Mingw-w64工具链来使用Clang。

虽然可以用Mingw-w64(或MinGW)工具链来配置Clang,但如果你决定使用LLVM repo的Clang,它将无法正常工作。这是因为LLVM Clang for Windows是使用Microsoft Visual Studio构建的,所有内置的宏和包含的搜索路径都是为使用Visual Studio而设置的。所以即使与MinGW工具链一起使用,它仍然会尝试包含MSVC标准库头。

我们做了一些实验,发现了一个可能的工作流程,就是使用CLion与MinGW工具链和Clang编译器相结合。

这是我们的发现:

  1. 从//www.msys2.org安装MSYS2,请遵循其安装指南。
  2. 使用pacman工具获取必要的软件包。我们安装了以下文件(pacman -S):
    • mingw-w64-x86_64-gcc
    • mingw-w64-x86_64-clang
    • mingw-w64-x86_64-lld
    • mingw-w64-x86_64-dgb
    • mingw-w64-x86_64-make
    • mingw-w64-x86_64-polly
    • mingw-w64-x86_64-compiler-rt

此Clang编译器使用mingw-w64构建,并具有与该工具链相对应的路径和宏。

现在我们准备建立CLion工具链。转到Settings/Preferences | Build, Execution, Deployment | Toolchains:

MinGW和Clang工具链

配置了新的工具链后,就可以开始构建项目了。您可以使用默认的ld连接或设置lld有-DCMAKE_LINKER=lld。

使用Clang编译器提供的高级工具

从理论上讲,所有Clang工具都应该可以正常工作。但是,涉及编译器-rt可能会出现问题。编译器-rt是一组运行时库,在Clang中使用消毒剂和配置文件是必需的,当前的compile_rt软件包是使用MinGW构建的。但是Clang需要使用Clang和lld构建的编译器。

在我们的案例中,我们想使用配置文件引导的优化。进行此工作的一种方法是获取与MSYS2中的Clang版本完全相同的版本的editor-rt源代码。这可能具有挑战性,因此另一个解决方案是克隆LLVM monorepo并构建所需的工具。

对于-fprofile-instr-generate,仅构建compile -rt和llvm-profdata来合并探查器结果可能就足够了。但是,要可靠地使用所有工具,最好也构建Clang和lld。

幸运的是,我们已经具有该构建所需的设置。

lang语

最后一步是将<msys2_path>/mingw64/lib\clang/<clang_version>/libwindows中的二进制文件替换为<compiler-rt_path>/cmake-build-release-mingw_clang/libwindows或<llvm_build_path>/lib/clang/<clang_version>/lib/windows中的库。

使用Clang进行性能分析

有了正确的编译器-rt库,现在就可以使用与-fprofile-instr-generate / -fprofile-instr-use标志设置的相同的工具链。因为我们已经有了源代码,所以让我们为此实验构建LLVM。我们还将使用-DLLVM_ENABLE_LTO = Thin进行更多优化。转到Settings/Preferences | Build, Execution, Deployment | CMake:

lang配置

使用此CMake配置,您可以构建Clang编译器并使用它,例如,构建自己的项目。这将生成相关的探查器信息,稍后应将其与我们之前构建的工具llvm-profdata合并。使用合并的profile_merged.profdata文件,您最终可以构建Clang编译器的优化版本:

lang配置文件使用配置

使用自定义Clang和lld

要让gcc风格的-fprofile-generate/-fprofile-use标志正确工作,需要改变Clang路径,并将-DCMAKE_LINKER设置为新构建的ld。你还需要一些额外的LLVM技巧:-femulated-tls和链接pthread


lang gcc配置文件生成

lang gcc配置文件生成

然后,应重复使用-fprofile-instr-generate / -fprofile-instr-use执行的所有步骤。

结论

现在可以在Windows上使用Clang,并且不需要安装Microsoft Visual Studio!

我们希望在不久的将来,使用高级的clang工具将变得更加容易,并且不再需要手动构建。让我们知道,如果您发现其他方法可以达到相同的效果!

今天的内容你学会了吗?前往慧都网免费下 载最新版尝试一下,并在评论分享你的想法。“慧都17周年庆”低价狂潮,省到尖叫最高立减2999元!低至797元!想要购买Clion正版授权的朋友欢迎

JetBrain技术交流群现已开通,QQ搜索群号“786598704或者扫描下方二维码即可加入


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP