Jack架設WIN32組譯工具的開發環境

來源:互聯網
上載者:User
 

標 題: Jack架設WIN32組譯工具的開發環境作 者: Jack Yang時 間: 2007-02-25 15:18鏈 接: http://blog.csdn.net/magus_yang/archive/2007/02/25/1514026.aspx1.         下載並安裝Ultraedithttp://www.ultraedit.com/我安裝的版本是12.20b+1官方中文版,安裝路徑不重要。 2.         下載並安裝MASMhttp://www.masm32.com/我安裝的是Version 9,安裝路徑為:D:/masm32 3.         make工具http://211.90.241.130:22366/view.asp?file=53壓縮包中有兩個make工具nmake.exe是Microsoft (R) Program Maintenance Utility   Version 1.50make.exe是MAKE Version 4.0 Copyright (c) 1987, 1996 Borland International這兩個make工具所支援的Makefile文法和常用的選項大同小異。把nmake.exe和make.exe解壓到Masm32安裝目錄的bin子目錄下。 4.         編寫一個用於設定環境變數的批次檔var.bat檔案的內容如下:@echo off
rem 請根據 Masm32 軟體包的安裝目錄修改下面的 Masm32Dir 環境變數!
set Masm32Dir=D:Masm32
set include=%Masm32Dir%Include;%include%
set lib=%Masm32Dir%lib;%lib%
set path=%Masm32Dir%Bin;%Masm32Dir%;%PATH%
echo on

 

每開啟一個新的命令列控制台,就要執行一次var.bat檔案。省力的做法是把環境變數添加到使用者變數,或系統變數中去。可以使用下列命令查看環境變數的設定情況:C:/>echo %include%C:/>echo %lib%C:/>echo %path% 5.         編寫makefilemakefile的內容如下:EXE = Test.exe             #指定輸出檔案
OBJS = Test.obj            #需要的目標檔案
RES = Test.res              #需要的資源檔
 
LINK_FLAG = /subsystem:windows    #串連選項
ML_FLAG = /c /coff            #編譯選項
 
$(EXE): $(OBJS) $(RES)
       Link $(LINK_FLAG) $(OBJS) $(RES)
 
.asm.obj:
       ml $(ML_FLAG) $<
.rc.res:
       rc $<
 
clean:
       del *.obj
       del *.res
  需要注意的地方:1)        nmake預設將Makefile檔案的第一條規則中的目標檔案作為最終檔案。例子中的最終檔案就是Test.exe2)        引用EXE或OBJS這些宏時一定要加上括弧,如:$(EXE)、$(OBJS) 、$(RES)3)        makefile的分行符號是“/”,“/”後面不能再加上其它字元,包括注釋和空格4)        隱含規則中幾個用來指定檔案名稱的特殊預定義宏$@ - 目標檔案的全路徑檔案名稱$*    - 目標檔案的除去副檔名的全路徑檔案名稱$?    - 所有源檔案(依賴檔案)的檔案名稱$<   - 源檔案(依賴檔案)的檔案名稱5)        顯式規則的定義格式:
目標檔案 : 依賴檔案
    命令6)        隱含規則的定義格式:
.源副檔名.目標副檔名:
    命令  用MASM編譯和連結一個Win32彙編來源程式常用的命令是:ml /c /coff xx.asmlink /subsystem:windows xx.obj yy.lib zz.res (普通PE檔案)link /subsystem:console xx.obj yy.lib zz.res (控制台檔案)link /subsystem:windows /dll /def:aa.def xx.obj yy.lib zz.res (DLL檔案)

 

6.         執行nmake.exenmake的常用選項如下:/?   顯示協助資訊 /f     指定描述檔案(makefile)的檔案名稱/x    把螢幕輸出的資訊存到一個檔案中/a     強制更新所有檔案/b    檔案時間相等時也要更新檔案/d    make時顯示檔案新舊資訊/n    顯示make時要執行的命令,但並不真正執行/p    make是顯示詳細的資訊宏定義    用新的定義覆蓋描述檔案(makefile)中的宏定義目標       指定建立描述檔案(makefile)中描述的某個檔案
如:
make clean
用於清除編譯過程中產生的臨時檔案,即執行del *.obj和del *.res兩條命令;
make test.obj
只編譯test.asm產生test.obj檔案;
make test.res
只編譯test.rc產生test.res檔案;  Win32組譯工具的開發調試過程:編譯來源程式->切換到MS-DOS視窗->鍵入nmake編譯->運行產生的可執行檔->切換到文字編輯器修改來源程式........如此迴圈往複偵錯工具。 參考資料:羅雲彬的《Windows環境下32位組合語言程式設計》(第二版)第二章

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.