环境: ubuntu 14c++
1、准备
一、下载 最新版本的llvm并解压git
https://releases.llvm.org/github
二、下载最新的 ollvm 并解压ubuntu
https://github.com/obfuscator-llvm/obfuscatorui
三、下载Obfuscation.shspa
https://download.csdn.net/download/ab6326795/12917249.net
下载Obfuscation.sh 后 放到llvm-project-10.0.1,code
目录结构以下:orm
----------------------------blog
../ollvm4.0/obfuscator
./llvm-project-10.0.1
--Obfuscation.sh
---------------------------
chmod后执行 ,
./Obfuscation.sh
执行完成后打印以下:
root@ubuntu:~/soft/ollvm10.0.1# ./Obfuscation.sh
拷贝ollvm文件和目录...
修改CMakeLists.txt...
修改lib/Transforms/CMakeLists.txt...
修改lib/Transforms/IPO/LLVMBuild.txt...
修改lib/Transforms/LLVMBuild.txt...
修改lib/Transforms/Obfuscation/Flattening.cpp...
修改lib/Transforms/Obfuscation/BogusControlFlow.cpp...
done!
剩下的,请手动修改lib/Transforms/IPO/PassManagerBuilder.cpp ...
四、修改 llvm-project-10.0.1/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp,参考以下:(绿色为须要新插入的代码)
https://github.com/obfuscator-llvm/obfuscator/commit/adbe45b199d4e42400ee646ad62a781f34b07860#
2、编译
在llvm-project-10.0.1目录执行:
# mkdir build # cd build # cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_CREATE_XCODE_TOOLCHAIN=ON ../llvm # make -j7
若是编译过程当中出现“c++: internal compiler error: 已杀死 (program cc1plus)” ,请以下操做:
咱们有时候在ubuntu中安装相关应用,尤为是在嵌入式移动设备上,很容易出现显存不足的状况,好比博主使用的firefly3399的开发板在编译caffe的时候就出现了这个问题,那么下面就给出解决的办法.
1.设置交换空间的大小
sudo dd if=/dev/zero of=/swapfile bs=64M count=32
这里个人count设置的32,由于我以前设置成16依旧有问题,因此建议设置大点,由于后面能够回收这部分空间的
2.建立交换空间文件
sudo mkswap /swapfile
3.开启交换空间
sudo swapon /swapfile
此时你就能够从新编译你的文件了,当编译完成后,回收这部分临时的交换空间
1.先关闭交换空间
sudo swapoff /swapfile
2.删除交换空间
sudo rm /swapfile
若是没有错误,编译完成了,就不须要上诉段落中的操做。