Cunoaștere cu masă

Cum pot compila fișiere executabile pentru Win32?

Este clar că de fiecare dată de la linia de comandă introduceți numele codurilor sursă, fișierele și cheile obj - nu foarte convenabile.







Dar acest proces este ușor de simplificat.


Primul pas spre simplificare este variabila de mediu ML

Să presupunem că scriem surx praxZ.asm.

Vrem să-l compilam până când funcționează în cele din urmă, și pentru asta se pot face multe încercări. Puteți face următoarele pe linia de comandă FAR:
SET ML = / coff praxZ.asm / link / SUBSISTEM: WINDOWS

Acum de fiecare dată când executăm ml fără cheile din dosarul sursă, vom compila exemplul nostru. În acest caz, această acțiune se aplică numai consolei curente. Adică, într-o altă situație a FAR, setarea nu va funcționa.


Următorul pas către utilizator este fișierul comanda bat

Acum este suficient să o porniți în speranța că de data aceasta nu există erori în codul sursă.


În buclă zero, am folosit BUILD.BAT din dosarul MASM32 \ bin.

Un mod relativ universal. Folosind-o, puteți compila asm-fișiere cu nume diferite (atât cu resurse, cât și fără). La ieșire, obținem PE-exe finit.


Să aruncăm o privire la BUILD.BAT:
@echo off

dacă există "% 1.obj" del "% 1.obj"
dacă există "% 1.exe" del "% 1.exe"

\ masm32 \ bin \ ml / c / coff "% 1.asm"
dacă eroarea de eroare 1 a erorat

dacă nu există rsrc.obj goto nores

\ Masm32 \ bin \ Link / SUBSISTEM: WINDOWS / OPT: NOREF "% 1.obj" rsrc.obj
dacă eroarea de eroare 1 a ajuns errlink

dir "% 1. *"
Mergi la TheEnd

Nores
\ masm32 \ bin \ Link / SUBSISTEM: WINDOWS / OPT: NOREF "% 1.obj"
dacă eroarea de eroare 1 a ajuns errlink
dir "% 1. *"
Mergi la TheEnd

errlink
ecou _
echo Link error
Mergi la TheEnd







errasm
ecou _
ecou Eroare de asamblare
Mergi la TheEnd

Nu înțelegi esența acestor mizerabile?

Apoi citiți foarte atent încă o dată Likbez utilizatorul tânăr.


Iar cei care înțeleg, probabil au observat deja câteva restricții privind utilizarea acestui fișier:
"MASM32" ar trebui să fie instalat în rădăcină și este în folderul MASM32.
Înainte de compilare, exe și obj anterioare sunt eliminate cu numele specificat.
Dacă există un fișier de resurse, atunci acesta trebuie deja tradus și neapărat cu numele rsrc.obj.

Ei bine, după cum am scris deja:
Dosarul curent ar trebui să fie directorul sursă.
Numele de fișier din linia de comandă este specificat fără o extensie.
Extensia sursei trebuie să fie asm.


Vă recomandăm să creați cel puțin un fișier similar pentru compilarea versiunii de depanare a exe.

Copiem BUILD.BAT și numim o copie, de exemplu, BDBG.BAT.

Să o înlocuim cu trei linii corespunzătoare:
.
\ masm32 \ bin \ ml / c / coff / Zi "% 1.asm"
.
\ Masm32 \ bin \ Link / SUBSISTEM: WINDOWS / OPT: NOREF / debug "% 1.obj" rsrc.obj
.
\ masm32 \ bin \ Link / SUBSISTEM: WINDOWS / OPT: NOREF / DEBUG "% 1.obj"

Folosind BDBG-ul nostru, puteți colecta PE-exe cu informații de depanare.

Ar fi frumos să faceți mai multe fișiere pentru compilarea dll-ului și pentru asamblarea completă cu informații de depanare. Dar tu ești tu.
Cum se compilează fișiere com executabile pentru DOS?

Pentru a compila astfel de surse, veți avea nevoie de:

Segmented Executable Linker (de exemplu, v5.31) și

ml.exe (trebuie să fie mai mică decât versiunea 7).

Din "MASM32 v9" este potrivit doar ml.exe. Dar linkerul va trebui să ia una suplimentară.


Puteți să o utilizați aproximativ cu această linie de comandă:

LINK / TINY nume.obj, nume.com;

cheie / TINY - definește mini-modelele, adică formatul obișnuit al fișierului COM pentru DOS.

După cum știți, nu există nici o limită pentru perfecțiune. Continuăm să satisfacem lenea programatorului.

Chiar și un fișier de bat nu va da un astfel de confort ca.

Mediul de dezvoltare integrat (IDE)


Astăzi, IDE-ul cel mai comun pentru MASM este:

MS Visual Studio,

Odată ce ați configurat IDE, în viitor veți economisi mult timp și efort.

Câțiva pași simpli sunt suficienți și proiectul wireframe este pregătit pentru compilare cu un singur clic al mouse-ului.

Dar recunosc sincer, o ajustare bună pentru tine - nu e așa de simplu. Cel puțin trebuie să înțelegeți ce înseamnă această opțiune și să conectați toate add-on-urile utile. Deși acum că știți atât de mult despre compilatorul MASM, va fi mult mai ușor: Turned:

__________________
[B] CD și RW [/ B]







Articole similare

Trimiteți-le prietenilor: