cmake tutorial

CMake - un cross-platform proiecte de sisteme automate de asamblare. Direct la asamblare nu este angajată, și generează doar Makefile, care va fi apoi a făcut marca de utilitate.

CMake poate verifica pentru bibliotecile necesare și să le conecteze pentru a colecta proiecte în cadrul diferitelor compilatoare și sisteme de operare. Ie aveți o grămadă de cod și un fișier care conține informații pentru cmake, și că acest lucru compilat în altă parte, trebuie doar să rulați cmake acolo, care va face totul singur. Convenabil, de ajutor, simplu.

[Edit] Dacă LITE

  • Crearea unui proiect în IDE de cmake
  • Localizați dosarul cu proiectul CMakeFiles.txt
  • Du-te peste ochii de tutoriale, corelarea cu CMakeFiles.txt dvs.

Despre conectarea bibliotecilor este încă citit ca un întreg, se recomandă.

Se presupune că pentru a găsi și descărca le sunt cmake,% username%, într-o stare. // dacă nu?

Să presupunem că ați iskhodnichek "test.cpp" (// dacă nu?). Mai întâi trebuie să creați un fișier pentru cmake, care este denumit în mod obișnuit „CMakeLists.txt“, scrie și acest lucru este de:

Acum, rulați (din consola), în această comandă dosar „cmake CMakeLists.txt“ (un argument poate fi transmis nu numai imaginea, ci, de asemenea, directorul în care se află, atunci cmake va găsi eu).

cmake va folosi transmise (sau găsit) un fișier de proiect (același CMakeLists.txt), și în directorul curent, a crea un proiect. Proiectul - o mulțime, o mulțime de fișiere și directoare (notă: deci este mai bine pentru a rula cmake dintr-un alt director, astfel încât să puteți, de exemplu, pentru a elimina rapid toate fișierele binare), dintre care ne interesează cel mai mult Makefile.

Makefile - acest fișier, aveți nevoie pentru a face utilitate. A fost ea care conduce compilator, linker-ul, și alte plăceri. Rulați make în directorul construi (de exemplu, același loc în care rulați cmake). Consola va ieși despre acest text:

Și ai un „test“ fișierul executabil va apărea în tata. Start, asigurați-vă că este într-adevăr ceea ce se așteaptă de la kompillyatsii fișier „test.cpp“.

Am tinkered cu diferite capacități cmake.

[Edit] Specificarea versiunea necesară de cmake

Dacă versiunea de cmake mai mic de 2,6, nu vrea să lucreze. Scrie această comandă întotdeauna - stil bun (cmake va sufla și să ia infracțiune dacă nu specificați o versiune, dar pentru a colecta toate la fel totul va fi).

[Edit] Titlul proiectului

Aceasta indică faptul că cmake-fișierul este rădăcina unui proiect. Cu proiecte implică anumite variabile și comportamentul cmake (a se vedea documentația).

[Edit] Variabile

În cmake puteți crea variabile de text. echipă

El scrie în variabila valoarea „Variable“ „valoarea variabilei“. Pentru a utiliza această variabilă oriunde, aveți nevoie pentru a scrie $.

Pentru a adăuga o variabilă la un text, puteți face acest lucru:

După cum puteți vedea, puteți utiliza valoarea în interiorul ghilimelelor. Variabilele sunt utilizate pe scară largă în diferite biblioteci - pentru a instala steaguri, să construiască setări / link-uri și alte bunătăți despre acest lucru un pic mai târziu.

Proiectul koshe'gnogo Exemplu cu o listă sortsy într-o variabilă separată:

[Edit] Setați comanda compilator

Această comandă este utilizată pentru a seta defaynov kotorye poate fi verificată în codul prin, de exemplu, # ifdef SOME_IMPORTANT_DEFINITION.

Aceasta se adaugă la steagurile utilizate în asamblarea C ++ - cod, steaguri -std = C ++ 11 și -Wall.

Cine nu știe: „-std = C ++ 11“ include suport pentru gcc standard C ++ 11, „-Wall“, spune ieșire gcc toate avertismentul (sfătuiesc puternic, ajuta la captura o mulțime de bug-uri stupide și de a scrie cod pur).

Dacă versiunea de GCC este mai mic decât 4.7.0, în loc să -std = C ++ 11, trebuie să utilizați -std = c ++ 0x.

In GCC 4.8.0 aparut flag -std = c ++ 1y, în care caracteristicile încep să pună în aplicare următorul standard.

[Articolul] Folder Hedera

Să presupunem că doriți să antetele (l-am găsit că sunt conectate prin #include) au fost căutate și în cataloagele „anteturi /“ și „more_headers /“:

Sper că este clar.

[Necesită citare] Cel mai important lucru - să se conecteze bibliotecile

Aflați cum să caute și să se conecteze biblioteca cu ajutorul unui exemplu Boost cmake. Pentru a începe, setați variabila pentru boost:

În primul rând - nu vrem să stimuleze la noi static conectat (de exemplu, dorim legarea dinamică). Dacă,% username%, nu știu ce este până la doar uita și de a folosi steagul așa cum este scris. Dar afla în curând despre ce este vorba. Al doilea pavilion permite să un impuls în implementările lor magice de fire sunt folosite pentru a paraleliza și alte plăceri.

Așa că am stabilit un steag. Să găsim un impuls!

Să presupunem că avem nevoie de componente impuls numit Chrono (bibliotecă a lungul timpului de lucru) și sistem de fișiere (biblioteca pentru lucrul cu sistemul de fișiere):

Win, va căuta doar bibliotecile necesare și amplasarea lor vor fi înregistrate în Boost_LIBRARIES variabile.

Opțiunea „OBLIGATORIU“ indică faptul că biblioteca necesară proiectului. Fără ea cmake decide că absența bibliotecii - nu atât de înfricoșător, și va continua să colecteze.

Adauga director Heder impuls pentru a căuta aceste antete:

Astfel, rămâne Biblioteca punct pentru a se conecta la fișierul executabil.

În ceea ce bibliotecile trebuie să specifice calea către construi biblioteca necesară. cmake găsi aceste biblioteci, am înregistrat într-o variabilă, de care ne bucurăm.

Rețineți că această comandă trebuie să fie numit după asamblare țintă stabilit (prin add_executable).

[Regula] Exemplul CMakeLists.txt bun și în cazul în care va minți

Deci, un exemplu complet de utilizare a toate acestea. Avem un anumit director (ia în considerare de acum înainte „/ surse“), și în ea sunt sursele

La rădăcină, „/“ este fișierul „/CMakeLists.txt“:

Dacă aveți ceva nu este clar - re-citit informațiile relevante de mai sus.

Creați un director "/ build" (nu "/ surse / build"), vom merge în ea, rulați-l "cmake.". „..“ - eticheta de directorul părinte. cmake ia din ea CMakeLists.txt nostru si va crea un proiect în directorul „/ build“. Pentru a construi proiectul, a alerga „face“ în același dosar „/ build“.

Astfel, în mod fundamental, avem:

  • CMakeLists.txt
  • cu directorul sursă
  • construi director

Toate secțiunile, automate și ușor.

[Edit] Cum de a crea o bibliotecă într-un subdirector și conectați-l la programul principal

Să ./ este proiectul principal, și dorim să facem LiBu ./subdir și ./build pentru a construi proiectul.

Acum este posibil să se facă fișierele principale ale proiectului #include „lib.h“

În ./build rula „cmake. face „și să obțină pentru a construi proiectul.

Integrarea cu cmake la QtCreator nu foarte aproape, cu toate acestea, pentru a lucra cu el posibil.

Crearea unui nou proiect fără a utiliza Qt, selectați "Project C ++ folosind CMake". Acest lucru va crea un fișier de asamblare implicit care se adaugă pur și simplu, toate fișierele sursă în directorul de proiect, și le compilează într-un singur binar.

[Edit] Cum se adaugă un antet la proiect, astfel încât acesta să fie vizibil în lista de fișiere

Dacă ați creat fișierul header.h în directorul de proiect, pur și simplu loc „add_executable ($ $)“ modificare a add_executable ($ $ „header.h“)

articole similare