S2E安裝

S2E安裝

S2E是什麼就不科普了,GitHub一搜就知道了。想着裝一個瞅瞅人家怎麼弄的,然而過程比較曲折。由於已經裝好纔想起來寫,就在這裏記錄安裝過程中出現的問題及解決辦法。

1、手邊沒有Ubuntu的鏡像,遂官網下載Ubuntu,版本16.04,64bit。網傳32bit會出問題。
2、安裝過程中首先出現了無法構建QEMU編譯環境的問題,每次apt-get build-dep都會報錯,發現是Ubuntu軟件源沒有勾選source code,而且安裝過程中更換軟件源後沒有apt-get upgrade將已安裝軟件與源中的軟件保持一致(詳見另一個帖子)。
3、之後make報錯,說找不到……./bits/目錄中的一個頭文件找不到,build目錄下qemu的目錄都沒有生成,編譯失敗。各種嘗試無果。報錯:

/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/cstddef:43:10: fatal error: 
      'bits/c++config.h' file not found
:
In file included from /home/qldx/Desktop/S2E/s2e/build/llvm-3.2.src/include/llvm/ADT/SmallVector.h:#include <bits/c++config.h>
         ^
17:
In file included from /home/qldx/Desktop/S2E/s2e/build/llvm-3.2.src/include/llvm/Support/AlignOf.h:19:
/usr/lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/cstddef:43:10: fatal error: 
      'bits/c++config.h' file not found
#include <bits/c++config.h>
         ^

4、於是更換爲S2E官方用的Ubuntu 12.04,……./bits/目錄下頭文件找不到的問題不再出現,但是s2etools編譯失敗,s2ecmd等都沒有正常編譯生成可執行文件。報錯: gnu/stubs-32.h: No such file or directory。
5、猜想可能是缺少32位的庫。一番google百度之後,印證想法。
6、使用apt-get install g++-multilib,之後順利完成所有編譯。
7、同樣的方法在Ubuntu 16.04上不起作用。
8、網傳有錯誤可以先不管,只要看到qemu-release的說法個人認爲不靠譜,有warning肯定是沒問題的,有error是一定不對的,只要有error就說明有的地方沒有編譯成功,就不算是安裝成功了。
9、本貼對應於S2E文檔Getting started->Building the S2E Platform一節。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章