ps:最开始尝试用VS+cmake编译,挣扎快两天,问题太多,如果有成功的小伙伴可以评论留言!!

一、安装前准备

本人win10操作系统

1. winrar 5.91 版本 (其他解压软件应该也可以)

2. python2/python3 二选一下载并将bin目录添加环境变量

下载地址如下,官网下载即可

https://www.python.org/ftp/python/2.7.18/python-2.7.18.amd64.msi

https://www.python.org/ftp/python/3.8.5/python-3.8.5.exe

参考 https://www.ituring.com.cn/article/274116

3. 安装cmake 添加环境变量,官网下载即可 我下的最新的3.15.5  

https://dl.softmgr.qq.com/original/Development/cmake-3.15.5-win64-x64.msi

4.  mingw下载安装添加环境变量

这里注意最好下载6.2 或 5.4版本  ,我因为要用GCC选择了5.4版本

gcc版本过高可能导致编译过程出现问题,踩雷

https://blog.csdn.net/qq153471503/article/details/84494090 

这是前辈整理的mingw所有版本下载地址,如果下载慢请科学下载

5.(可选)安装gnu32,添加环境变量

  gnuwin32主要是对习惯linux工具的人员,在windows上提供一套类似的命令。

https://nchc.dl.sourceforge.net/project/getgnuwin32/getgnuwin32/0.6.30/GetGnuWin32-0.6.3.exe

安装后分别运行GetGNU32目录下的donwload.bat 和install.bat, 具体步骤参考下面博客

https://www.cnblogs.com/cnsevennight/p/4253167.html

 

下图是我目前的环境变量,注意以上的环境变量路径中不要含有中文!!!!

 

 

6.下载llvm3.8.1 和clang3.8.1源码并解压

 

https://releases.llvm.org/3.8.1/llvm-3.8.1.src.tar.xz   文件夹命名为llvm

 

https://releases.llvm.org/3.8.1/cfe-3.8.1.src.tar.xz     文件夹命名clang

 

 

 

 

 

 

 这里将他们置于同一根目录下 方便使用

 

 

按需求可以下载compiler-rt 等源代码,我只下了上边两个

 

二、安装过程

1.编译安装llvm

打开命令行

cd 进入llvm和clang的上级目录

md build  创建build文件夹

cd build 

cmake -G "MinGW Makefiles" ../llvm       这里默认使用debug模式,会有调试信息,

追求速度可以添加option -DCMAKE_BUILD_TYPE=Release

 

cmake命令过程中可能会出现 not found 的情况, 是linux和windows平台差异造成的,可以忽略此问题

mingw32-make.exe -j4   4个线程加快编译,但出错后不太好找到报错的位置,可以再次输入mingw32-make.exe查看最近的报错信息

成功后build的bin文件夹如下,将bin目录加入环境变量

 

 

重启命令行输入llvm-as --version,显示如下,说明编译安装成功

 

 

 

2.编译安装clang

cd clang

md build

cd build

这里先不要cmake,由于gcc版本的问题,直接cmake安装最后会报错出现下面的类似问题

 

 

 解决办法:

修改clang目录的CMakeLists

在top level 加入(写在第二行就行)

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -Wall -O3 -Wa,-mbig-obj -std=gnu++11" )

保存开始cmake

接着上面

cmake -G "MinGW Makefiles" ../

mingw32-make.exe -j4 

编译结束后同样在build文件夹下生成bin文件夹,将bin目录添加环境变量

 

重启命令行,输入 clang --version查看clang版本

 

 

 可以写一个c或c++程序用clang编译一下,运行查看结果

 

 

 成功啦!!!

 

有问题请下面留言吧

前人栽树,后人乘凉,感谢支持

参考:

http://clang.llvm.org/get_started.html

https://www.ituring.com.cn/article/274116

https://blog.csdn.net/qq_37206105/article/details/102774693

.......

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted on 2020-08-13 15:56  CRook  阅读(548)  评论(0)    收藏  举报