官术网_书友最值得收藏!

1.2 安裝GCC

GCC(GNU Compiler Collection,GNU編譯器套件)是由GNU開(kāi)發(fā)的支持C/C++的編譯器。它是以GPL許可證發(fā)行的自由軟件,是一個(gè)跨平臺(tái)的編譯器,現(xiàn)已被大部分操作系統(tǒng)(如Windows、Linux、macOS等)采納為標(biāo)準(zhǔn)編譯器。在軟件逆向工程中,經(jīng)常會(huì)遇見(jiàn)使用GCC編譯的應(yīng)用程序。在Windows上安裝GCC可以選擇安裝Cygwin或者M(jìn)inGW-w64,本節(jié)將介紹MinGW-w64的安裝。

1. 下載安裝MinGW-w64

MinGW-w64的官方地址為http://mingw-w64.org,下載地址為https://sourceforge.net/projects/mingw-w64/files/mingw-w64/mingw-w64-release/,下載頁(yè)面如圖1-10所示。

圖1-10 MinGW-w64下載

單擊Download進(jìn)行下載,下載完成后運(yùn)行mingw-w64-install.exe,按照?qǐng)D1-11所示選擇安裝設(shè)置。安裝設(shè)置說(shuō)明如下。

圖1-11 MinGW-w64安裝選項(xiàng)

  • Version:編譯器版本,選擇最新版8.1.0。
  • Architecture:CPU,選擇x86-64。
  • Threads:線程API,選擇win32。
  • Exception:異常處理庫(kù),選擇sjlj庫(kù),它可以同時(shí)支持32位和64位程序的異常處理。
  • Build revision:默認(rèn)項(xiàng)。

設(shè)置安裝路徑,單擊Next直到安裝完成,如圖1-12所示。

圖1-12 MinGW-w64安裝

2. 配置環(huán)境變量

將MinGW-w64的bin目錄設(shè)為環(huán)境變量,鼠標(biāo)右鍵選中桌面“此電腦”→“系統(tǒng)”→“高級(jí)系統(tǒng)設(shè)置”→“環(huán)境變量”,如圖1-13所示。

圖1-13 環(huán)境變量設(shè)置入口

雙擊Path變量,單擊“新建”將bin目錄設(shè)置為環(huán)境變量,最后單擊“確定”保存設(shè)置,如圖1-14所示。

圖1-14 環(huán)境變量設(shè)置

單擊開(kāi)始菜單運(yùn)行cmd,輸入gcc -v查看gcc版本信息是否安裝成功,如圖1-15所示。

圖1-15 查看gcc版本信息

3. 編譯

運(yùn)行cmd,輸入以下命令編譯程序。

cd <源碼目錄>
gcc -m32 -O2 -o x86_gcc.exe hello.c

編譯選項(xiàng)說(shuō)明如下。

  • -m32表示編譯32位程序,-m64表示編譯64位程序。
  • -O2表示編譯Release版,以最快執(zhí)行速度優(yōu)化;默認(rèn)編譯Debug版。
  • -o指定可執(zhí)行文件名稱,是現(xiàn)在比較流行的一個(gè)編譯器,越來(lái)越多的軟件選擇使用Clang編譯器編譯。

(1)下載并安裝Clang

Clang的官方下載地址為http://releases.llvm.org/download.html,選擇下載Windows版本,如圖1-16所示。

圖1-16 安裝Clang

運(yùn)行下載LLVM-8.0.1-win64.exe,選擇安裝目錄,一直單擊“下一步”直到安裝完成,如圖1-17所示。

圖1-17 Clang安裝

將Clang安裝路徑的bin目錄設(shè)置到環(huán)境變量,為防止與VS2019的Clang編譯器沖突,可調(diào)整環(huán)境變量順序。運(yùn)行cmd并輸入命令clang -v,顯示版本信息表示安裝成功,如圖1-18所示。

圖1-18 Clang安裝成功

(2)編譯

運(yùn)行cmd,輸入以下命令編譯程序,編譯選項(xiàng)與GCC一致,其中O0表示Debug版,如圖1-19所示。

cd <源碼目錄>
clang -m32 -O0 -o x86_clang.exe hello.c

圖1-19 使用Clang編譯程序

主站蜘蛛池模板: 丹阳市| 合肥市| 彰化市| 饶平县| 新竹市| 米泉市| 九龙县| 宾阳县| 舒兰市| 亳州市| 大同市| 延寿县| 多伦县| 玉田县| 金塔县| 长乐市| 中超| 海兴县| 乌拉特前旗| 淅川县| 讷河市| 河西区| 格尔木市| 吉隆县| 秭归县| 榕江县| 德保县| 咸丰县| 怀宁县| 类乌齐县| 临漳县| 田东县| 定安县| 南溪县| 鄯善县| 宣武区| 宁都县| 贵定县| 察哈| 荆门市| 福海县|