带有Clang 6的VS2017不断重新编译

时间:2017-10-21 12:29:39

标签: visual-studio clang visual-studio-2017

我使用Clang 6.0.0(来自Windows安装程序的最新版本)和Visual Studio 2017来构建我的项目,一切正常,除了一件事,它每次都重建每个文件。不仅如此,它甚至可以在没有代码更改的情况下重新编译所有内容,而我只使用“开始调试”或“无需调试启动”! .obj文件仍然存在,但似乎没有重用它们,这当然是非常慢的!

只有在我的项目中设置了“LLVM-vs2014”的Clang 6时才会发生这种情况,当我切换“Visual Studio 2017(v141)”或“Visual Studio 2017 - Clang with Microsoft CodeGen(v141_clang_c2)”时我不这样做有这个问题,它只编译改变了什么。

什么可能导致这种行为?

编辑:也许这就是网站的含义“64位版本也可用,但它不能与Visual Studio集成。”

1 个答案:

答案 0 :(得分:2)

您可以使用.tlog

https://github.com/kazatsuyu/fafnir

Visual Studio使用clang文件管理构建依赖项,但它似乎会为最近的fafnir生成错误的依赖项。要修复它,SetFileInformationByHandle通过DLL注入使用API​​挂钩到install.bat

用法

  1. the release page on GitHub
  2. 下载最新版本
  3. 解压缩
  4. 运行new_toolset_name
  5. 指定LLVM / clang目录的路径
  6. 指定v[0-9]+_clang_.*(以{{1}})
  7. 的形式

    参考