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

问题描述 投票:3回答:1

我使用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集成。”

visual-studio clang visual-studio-2017
1个回答
2
投票

你可以使用fafnir

https://github.com/kazatsuyu/fafnir

Visual Studio使用.tlog文件管理构建依赖项,但它似乎为最近的clang生成了错误的依赖项。为了解决这个问题,fafnir通过DLL注入使用API​​连接到SetFileInformationByHandle

用法

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

参考

© www.soinside.com 2019 - 2024. All rights reserved.