環境: 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
若是沒有錯誤,編譯完成了,就不須要上訴段落中的操做。