lyx dokumentum
1. példa használata CGyõzõdjön
A következő példa bemutatja néhány kulcsfontosságú szempontjait CGyõzõdjön. Mielőtt a következő példát, ellenőrizze, hogy CGyõzõdjön telepítve a számítógépen (megy az utasításokat).
Három könyvtárakat. A legfelső szintű könyvtárat két alkönyvtárak nevét és ./Demo ./Hello. A ./Hello könyvtár megy a könyvtárba. A ./Demo könyvtárban fog egy futtatható fájlt, hogy kapcsolódik a könyvtár. Összesen CMakeList.txt létre három fájlt: egyet a könyvtárban.
Először is, a legfelső szintű könyvtár tartalmazza a következő CMakeLists.txt fájlt.
# A projekt megnevezése - „HELLO”. CMakeLists fájlokat ebben a projektben utalhat
# A gyökérkönyvtárban nevű forráskódú projekt $# A gyökér könyvtárat a lefordított fájlokat a projekt nevében
# Elhelyezés egy futtatható fájlt egy napot könyvtárban.
target_link_libraries (helloDemo szia)
Amikor végez CEllenõrizze egy legfelső szintű könyvtárat úgy értelmezi CMakeLists.txt, majd elmerül a felsorolt könyvtárakban. Változók, az út header file kereső, a könyvtár keresési útvonalat, stb örökölt. Attól függően, hogy az operációs rendszer: Unix make-fájlok és rendszerfájlok számára MSVC munkaterületek / Projektek. A létrehozott fájlok tudja használni a szokásos módon lefordítani a kódot.
2. Gyakorlat CEllenõrizze
Az alábbiakban lépésről lépésre bemutató, amely a gyakori kérdésekre épít rendszer, amely segít megoldani CGyõzõdjön. Sok ilyen témák kerülnek bemutatásra a Mastering CGyõzõdjön külön kérdés, de nagyon hasznos lehet, hogy lássuk, hogyan működnek együtt a projektben példa. Ez az útmutató megtalálható a tesztek / Tutorial fa CGyõzõdjön forráskód könyvtárban. Minden lépés saját könyvtára van, amely egy teljes másolatát a lecke ezt a lépést.
2.1 A kiindulási pont (1. lépés)
A legegyszerűbb kivitelben épül forráskód futtatható fájlt. Egyszerű projektek két vonal CMakeLists fájl minden, ami szükséges. Ez lesz a kiindulási pont a leckét. CMakeLists fájl így néz ki:
cmake_minimum_required (VERSION 2.6)
Megjegyzendő, hogy ez a példa kisbetűk a parancsokat CMakeLists fájlt. CEllenõrizze támogatja parancsok beírt karakterek a felső, alsó és vegyes ügyben. A forráskód tutorial.cxx kiszámítja a négyzetgyöke számát és az első lehetőség, hogy nagyon egyszerű:
// Egy egyszerű program, amely kiszámítja a négyzetgyökét szám
int main (int argc, char * argv [])
A legfontosabb változások a felvétel egy header file TutorialConfig.h és kimeneti kinyomtatni a verziószám részeként az információk felhasználását.
2.2 hozzáadása a könyvtár (2. lépés)
Most fogunk hozzá a könyvtár a projekthez. Ez a könyvtár tartalmazza a végrehajtás értékének meghatározása a négyzetgyök. A futtatható fájl ezután tudja használni ezt a könyvtárat, hanem a szabvány által biztosított funkciók a fordító. Mert ez a bemutató, akkor helyezze a könyvtár nevét viselő alkönyvtárban MathFunctions. Ez a könyvtár tartalmazza CMakeLists fájl, amely magában foglalja egy sor:
Mysqrt.cxx forrás fájl egy funkció elemzi mysqrt, amely ugyanazt a funkciót, a funkciók sqtr fordító. Ahhoz, hogy az új könyvtár, adjuk hozzá a hívást add_subdirectory CMakeLists a legfelső szintű fájlt, ez biztosítja az építőiparban a könyvtárban. Azt is hozzá egy másik mappát, amelyben a fejlécet MathFunctions / mysqrt.h fájl építeni a rendszert lehet találni egy prototípusa a végrehajtó funkciót. Az utolsó változás hozzáadása egy új könyvtár a futtatható fájlt. Az utolsó néhány sor a felső szintű CMakeLists fájl így néz ki:
# Add a futtatható
add_executable (bemutató tutorial.cxx)
target_link_libraries (bemutató MathFunctions)
Most azt a kérdést, létrehozásának MathFunctions opcionális könyvtárban. Ebben az útmutatóban nincs igazán semmilyen ok erre, de egy nagy könyvtár, vagy könyvtárak támaszkodnak harmadik féltől származó kódra érdemes rá. Az első lépés az, hogy adjunk egy felső szintű CMakeLists fájlok lehetőséget.
# Ha használjuk a saját matematikai függvények?
opció (USE_MYMATH „Use bemutató előírt matematikai megvalósítása” ON)
Ez az opció jelenik meg a CGyõzõdjön GUI, és az alapértelmezett állítva, hogy a felhasználó nem változtathatja meg az akarat. Ezt a beállítást a cache, így a felhasználónak nem kell változtatni a beállításokat minden egyes indításakor ez a projekt CGyõzõdjön. A következő a módosítás lehetővé teszi, hogy végezzen kötelező MathFunctions könyvtárból lehetőséget. Ahhoz, hogy ezt elérjük, módosítsa a fájl végére felső szintű CMakeLists, hogy vizsgálja meg a következőképpen:
# Add a MathFunctions könyvtárat?
set (EXTRA_LIBS $ MathFunctions)
# Add a futtatható
add_executable (bemutató tutorial.cxx)
Ez használ USE_MYMATH változó annak meghatározására, hogy a must-MathFunctions könyvtár össze és használják. Figyeljük meg a változó (EXTRA_LIBS ebben az esetben), akkor az itt használt gyűjteni minden további könyvtárak, amelyeket később kapcsolódik egy futtatható fájl. Ezt az általános megközelítést, hogy támogassa a nagy projektek számos további komponenseket. Megfelelő változtatásokat a forráskód nagyon egyszerű:
// Egy egyszerű programot, amely kiszámítja a négyzetgyökét szám
int main (int argc, char * argv [])
fprintf (stdout, "% s verzió ... \ n", az ARGV [0], Tutorial_VERSION_MAJOR, Tutorial_VERSION_MINOR);
fprintf (stdout, "Használat:% s szám \ n", az ARGV [0]);
kettős BeviteliÉrték = atof (argv [1]);
kettős outputValue = mysqrt (BeviteliÉrték);
kettős outputValue = sqrt (BeviteliÉrték);
fprintf (stdout, "A négyzetgyöke% g értéke% g \ n", BeviteliÉrték, outputValue);
A forráskód, mi is használni USE_MYMATH. Ez úgy érhető el, ha az adatátvitel a forráskódot CGyõzõdjön keresztül TutorialConfig.h.in konfigurációs fájlban való hozzáadásával a következő húrok:
2.3 szerelése és teszt (3. lépés)
A következő lépésben fogunk hozzá szabályait telepítés és tesztelés támogatása a projekt. telepítési szabályok meglehetősen egyszerű. Annak érdekében, hogy vezessenek be megfelelő MathFunctions Könyvtár és header fájlt, a következő két sort hozzá a MathFunctions' CMakeLists file:
telepíteni (a célok MathFunctions ÚTICÉL bin)
telepíteni (FILES MathFunctions.h ÚTICÉL tartalmazza)
Egy alkalmazás hozzá a legfelső szintű fájlt CMakeLists következő sornyi kódot beállítani a futtatható fájlt, és a konfiguráció a header file:
# Add a telepítés célok
telepíteni (a célok bemutató ÚTICÉL bin)
# Add a központi könyvtár
add_library (MathFunctions mysqrt.cxx $ / Table.h)
Először adja hozzá a futtatható MakeTable, hozzá, mint bármely más végrehajtható. Másodszor vagyunk hozzá egy egyéni parancs, amely meghatározza, hogyan kell előállítani Table.h, amikor egy MakeTable. Harmadszor, meg kell adni CGyõzõdjön tudni, hogy attól függ, mysqrt.cxx Table.h generált fájl. Ez úgy történik, úgy, hogy a keletkező Table.h fájlt a listában források MathFunctions könyvtárban. Azt is meg kell hozzá a jelenlegi bináris könyvtárat a lista könyvtárak lehetnek benne, úgyhogy Table.h fájl található, és tartalmazza mysqrt.cxx.
Ha fut a projekt építési akkor először építeni egy futtatható fájl MakeTable. Aztán elkezd MakeTable Table.h fájl létrehozása. Végül, akkor fordítsd mysqrt.cxx fájl tartalmazza Table.h generálni MathFunctions könyvtárban.
Ezen a ponton, a felső szintű CMakeLists fájl így fog kinézni:
cmake_minimum_required (VERSION 2.6)
set (Tutorial_VERSION_MAJOR 1)
set (Tutorial_VERSION_MINOR 0)
# Van-e ez a rendszer mindkét funkciót jelentkezzen és exp?
check_function_exists (log HAVE_LOG)
check_function_exists (exp HAVE_EXP)
# Ha használjuk a saját matematikai függvények
opció (USE_MYMATH „Use bemutató előírt matematikai megvalósítása” ON)
# Konfigurálása fejállománnyal át néhány CVégezze beállítások
# A forráskód
# Add a bináris fa a keresési útját tartalmazzák kép
# Hogy fogunk találni TutorialConfig.h
# Add a MathFunctions könyvtárat?
set (EXTRA_LIBS $ MathFunctions)
# Add a futtatható
add_executable (bemutató tutorial.cxx)
# Add a telepítés célok
telepíteni (a célok bemutató ÚTICÉL bin)
# A felhasználói szoftver fut
add_test (TutorialRuns bemutatója 25)
# E a használati üzenetet a munka?
add_test (TutorialUsage bemutatója)
#define egy makró egyszerűsítése végett tesztek
makró (Do_Test arg eredmény)
add_test (TutorialComp $ bemutató $)
# Van egy csomó eredmény alapú vizsgálatok
Do_Test (4 "4, 2")
Do_Test (9 "9, 3")
Do_Test (5 „5 jelentése 2.236„)
Do_Test (7 „7 jelentése 2,645„)
Do_Test (25 "25 5")
Do_Test (-25 "-25 0")
Do_Test (0,0001 „0,0001 0,01”)
TutorialConfig.h.in fájl így néz ki:
// A beállított opciók és beállítások bemutatója
#define Tutorial_VERSION_MAJOR @ Tutorial_VERSION_MAJOR @
#define Tutorial_VERSION_MINOR @ Tutorial_VERSION_MINOR @
telepíteni (a célok MathFunctions ÚTICÉL bin)
telepíteni (FILES MathFunctions.h ÚTICÉL tartalmazza)
2.6 összeszerelése és a telepítő (6. lépés)
Tegyük fel továbbá, hogy azt akarjuk, hogy kiterjesszük a projekt, hogy más emberek tudják használni azt. Azt akarjuk, hogy terjeszteni a forráskódot, és a lefordított kódokat több platformon. Ez kis mértékben eltér attól, amit csináltunk korábban telepítése és tesztelése (3. lépés) 2.3. ahol végzett a telepítéssel bináris fájlok épültek a forráskódot. Ebben a példában fogunk építeni telepítési csomag, amely támogatja a bináris csomag telepítés és menedzsment funkciókat tartalmazza Cygwin, Debian, RPM stb Ennek elérése érdekében, akkor használja CPack, amely megteremti a platform-specifikus szerelők, ahogy az a fejezet Csomagolás CPack. Különösen azt kell hozzá egy pár sort az alján a felső szintű fájl CMakeLists.txt.
# Építsünk egy CPack vezérelt telepítő csomag
set (CPACK_RESOURCE_FILE_LICENSE "$ / License.txt")
Ez minden van hozzá. Kezdjük a befogadás InstallRequiredSystemLibraries. Ez a modul tartalmazza az összes dinamikus könyvtárakat, amelyek szükségesek a projekt által az adott platformhoz. Aztán meg néhány változót CPack, ha tartjuk az engedély és verzió információ a projekt. Verzió információ használja változókat, amelyekre korábban megadott ebben a leckében. Végül mi is CPack modul, amely használni fogja ezeket a változókat és néhány egyéb tulajdonságait a rendszer, amelyen beállította a telepítő.
A következő lépés az, hogy a projekt létrehozásához a szokásos módon, majd indítsa CPack rajta. Ahhoz, hogy hozzon létre egy bináris disztribúció, akkor végre kell hajtani:
cpack -C CPackConfig.cmake
Ahhoz, hogy hozzon létre egy elosztó, meg kell adnia
cpack -C CPackSourceConfig.cmake
2.7 hozzáadása támogatása a központ (7. lépés)
Hozzátéve, támogatja a prezentáció a műszerfalon a mi vizsgálati eredmények végezzük egyszerűen. Már azonosított vizsgálatok száma a projektünk az előző lépésekben a bemutató. Csak meg kell futtatni ezeket a vizsgálatokat, és azokat be kell nyújtaniuk a műszerfalon. Annak érdekében, hogy panelek CTest mi a felső szintű modul a mi CMakeLists fájlt.
#include script panel
Mi is létrehozhatunk CTestConfig.cmake fájlt, ahol megadhatja a nevét a projekt műszerfalon.
set (CTEST_PROJECT_NAME "Útmutató")