Build cpp projektek nmake-vel

A szoftvertermékek különböző módon gyűjthetők össze. Inkább, hogy mindezt az IDE, de előfordul, hogy egy ilyen lehetőség elfogadhatatlan - néha szükség van, hogy egy modul, amely lehetővé teszi, hogy összegyűjti a terméket a forráskódot (beszélünk a kódot, C ++), és nem követelte ugyanakkor telepített Visual Studio. A probléma egyik megoldása a Microsoft által kifejlesztett nmake segédprogram használata. A cikk leírja ennek a megközelítésnek a megvalósítását, és általános képet ad a nmake-ral való együttműködésről.

Csomagstruktúra

A fordítóhoz és a linkerhez egy sor fájl szükséges:

  • futtatható fájlok. / VisualStudio / vc7 / bin (cl.exe, link.exe stb.);
  • fejléc fájlok;
  • statikus könyvtárak:
  • dinamikus könyvtárak;
  • a debug-verziók összeállításához szükséges pdb-fájlok;

Nyilvánvaló, hogy az általános részben csak azok a fájlok használhatók, amelyeket a legtöbb projekt (tartalom ... / VisualStudio / vc7 / PlatformSDK stb.) Használ. Az adott projekthez tartozó könyvtárak és fejlécfájlok tárolhatók a könyvtárban.

mert ezeket az alkatrészeket az egyes cpp projektek elkészítésekor használják, külön helyre lehet vinni (esetemben egy C: \ buildmastering nevű mappa). Arra a gondolatra, hogy mi más a tervezési területen, mégis olyan világos ötlet született, hogy elosztja a munkát az összeszerelésre való felkészüléssel és a fordító konfigurációjával a linkerrel.

Így bármely projekt struktúrájában vannak:

  • forrás könyvtár;
  • egy könyvtár a fordító és a linker beállításainak tárolására;
  • könyvtár az építmény eredményéhez;

A parancsfájlban használt parancsokról (például @echo off vagy setlocal enabledelayedexpansion stb.) Olvashat a "Batman osztály" című cikkben.

Ahelyett, hogy létrehozna egy makefile-t, amely tartalmazza a COMPILER_FILE_SET és a LINKER_FILE_SET változókat, érdemes környezeti változókat használni. Ez a megoldás általában nem megfelelő, mivel ha a projekt sok * .cpp fájlt tartalmaz, azok listája nem illeszkedik a környezeti változóhoz rendelkezésre álló kötetbe.

következtetés

köszönöm

Köszönet Alexey Alexandrovnak a cikkért!

Hatalmas emberi megköszönés Kolya Merkin számára, hogy hajlandó megosztani hatalmas élményét!

Kapcsolódó cikkek