Windows7使用VS2017编译LLVM+Clang源码

工具:VS2017、Python(用于运行测试套件)、CMake-3.15.1(用于生成VS解决方案和项目文件)

Tips:1、VS确认好安装版本,切记不要混装

     (由于VS2015和VS2017的混装导致CMake生成LLVM.sln折腾了一天)

          2、CMake安装最新版,以支持VS2017

源码包:llvm-8.0.1.src.tar.xz

cfe-8.0.1.src.tar.xz(Clang)

compiler-rt-8.0.1.src.tar.xz

http://releases.llvm.org/download.html

遇到的问题:

1、CMake报错,默认情况下VS使用x86编译器,但这会导致连接器不稳定内存耗尽。

解决:设置host=x64参数

Windows7使用VS2017编译LLVM+Clang源码

2、CMake构建LLVM.sln项目报错No CMake C_Complier Could be found.

原因:安装VS2015未卸载干净又安装VS2017,系统中SDK为15036(VS2017支持)。但CMake中只能找到VS2015(Visual Studio14),VS2015最高支持14393版本的SDK。

方法1:安装14393版本SDK,依旧报错。

方法2:彻底卸载VS,TotalUninser.zip清理残留文件

        安装最新版CMake-3.15.1以支持VS2017(Visual Studio15)

3、VS2017加载LLVM.sln时报错,项目XXX无法加载,缺少安装组件,提示安装Microsoft.VisualStudio.Component.VC.Tools.x86.x64

方法1:VS添加与C++相关的项目(用于x86,x64的Visual++ MFC和用于x86,x64的Visual++ ATL),未解决。

方法2:原因还是VS之前的残留项未清理干净导致

        卸载Microsoft Visual C++ 2017 Redistribute(x64)和Microsoft Visual C++ 2017 Redistribute(x86);打开VS安装程序,更新VS2017。

步骤:

  1. 解压llvm-8.0.1.src.tar.xz至D:/llvm-8.0.1/llvm-8.0.1.src
  2. 解压cfe-8.0.1.src.tar.xz,改名clang,移动到目录llvm-8.0.1.src/tools
  3. 解压compiler-rt-8.0.1.src.tar.xz,改名compiler-rt,移动到目录llvm-8.0.1.src/projects
  4. 在D:/llvm-8.0.1下创建目录llvm-8.0.1.build
  5. 运行CMake,source code路径选D:/llvm-8.0.1/llvm-8.0.1.src,build the binaries路径选D:/llvm-8.0.1/llvm-8.0.1.build。Configure选择Visual Studio15,参数设置host=x64,Generate。
  6. 在/llvm-8.0.1.build路径下生成工程文件LLVM.sln,VS打开编译。
  7. 编译完成后,在D:\llvm-8.0.1\llvm-8.0.1.build\Debug\bin\路径下会生成exe,将该路径加入到path中。

 Windows7使用VS2017编译LLVM+Clang源码

相关文章: