首页
社区
课程
招聘
[原创]LLVM编译
发表于: 2020-9-23 15:37 4097

[原创]LLVM编译

2020-9-23 15:37
4097

最近换了个电脑,重新编译llvm10.0.1的时候遇到点小波折.
顺便把自己vs编译llvm的经验分享给大家.
前几天刚安装好系统,然后安装最新的vs2019(16.7.3),熟练的配置好llvm项目,马上vs编译,等了半个小时,一堆错误,错误信息不记得了.
当时就瞎几把以为是跟以前一样,个别变量类型,结构体变化的原因,一顿找原因,一顿改,折腾大半天,啥都没解决,最后通过谷歌才找到是vs2019(16.7.3)这个编译器版本的原因,从https://my.visualstudio.com/Downloads这里下载了16.4版本的vs2019才算解决.
图片描述

 

这里介绍下自己的llvm编译思路.
首先先从vs安装开始,安装的时候我会把Python和CMake直接一起安装了.
图片描述
图片描述
安装完成后,手动设置下Python和CMake到系统环境变量就行了,没必要自己去单独安装着两个东西.
vs安装完成后打开vs目录,通过搜索Python.exe和CMAKE.exe,分别找到这两个文件的目录.
然后,我的电脑->属性->高级系统设置->高级->环境变量->path->编辑->添加这两个文件的目录进去->确定.
图片描述
接下来下载llvm源码,以及配置.
https://github.com/llvm/llvm-project
直接下zip源码解压,我个人需要的只有4个目录,clang-tools-extra,clang,
lld,llvm
其他的都可以删除了.把clang,lld这两个目录,直接剪切到llvm\tools目录下,然后clang-tools-extra剪切到llvm\tools\clang\tools目录下,可以改名extra,也可以不改.
图片描述
从llvm\tools\clang\tools\CMakeLists.txt配置文件中可以看到支持两个文件夹名称.
同理,如果你还需要其他功能或者有强烈的强迫症,可以去llvm其他目录下查看相应的CMakeLists.txt,然后把llvm目录下其他项目目录都配置下去,也是没毛病的.(多尝试,对自己没坏处).
我自己的需求,配置好clang-tools-extra,clang,
lld这三个项目到llvm就够了.然后就可以开始cmake生成vs的解决方案了.

1
2
cmake -DCMAKE_BUILD_TYPE=Release  -DLLVM_INCLUDE_TESTS=OFF -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON -Thost=x64 ../
pause

llvm目录下新建一个build目录(名字随意,习惯而已),以上代码保存为bat文件
图片描述
如果你安装了多个版本的vs编译器,可以指定编译器,bat里面增加cmake参数即可
-G "Visual Studio 16 2019"
不知道编译器版本参数的,可以 cmd 执行cmake -G /?,就可以出来各种编译器参数了.
图片描述
然后直接双击运行bat即可.
正常情况下,没啥毛病,等个几分钟,应该就是提示configuration done的提示.
然后你就可以再build目录下看到llvm.sln解决方案了.
打开后选择release,x64,我个人会把examples目录下的所有项目都直接卸载了.反正也用不到,编译还浪费时间.
图片描述
然后就开始编译了,最好把系统占用资源的程序都关了吧.除非你上几万的电脑,可能能狗住(我是没那个钱).CPU吃的开的话,编译就30分钟左右完事了,CPU不好的就不要用vs编译了,吃不开,连接器会直接线程崩溃,编译不了.
最后自己弄个vs的llvm编译插件,就可以用了.
至于混淆加密,谷歌百度吧,


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 13913
活跃值: (17022)
能力值: ( LV12,RANK:290 )
在线值:
发帖
回帖
粉丝
2
mark,感谢分享
2020-9-23 16:47
0
游客
登录 | 注册 方可回帖
返回
//