când să utilizați CMake clean / configure? edit
CMake memorează în cache mai multe informații din fișierul CMakeCache.txt
. Acestea sunt, de exemplu, directoare în care au fost găsite pachete specifice și definiții transmise folosind -D
.
câteva exemple atunci când doriți să utilizați --cmake-clean-cache
:
- un pachet găsit anterior ar trebui să fie căutat din nou, deoarece doriți să fie găsit/utilizat dintr-o altă locație
- ați trecut o definiție înainte de care nu doriți să fie setat mai merge mai departe
CMake rulează automat pasul configurare atunci când orice fișier CMake inclus sa schimbat. Dar uneori logica dvs. depinde de starea/fișierele suplimentare / externe și aveți nevoie de CMake pentru a rula din nou pasul de configurare. (Există modalități de a spune CMake că schimbarea unui anumit fișier non-CMake ar trebui să declanșeze o reconfigurare.) Deci, dacă aveți nevoie de pasul de configurare pentru a rula din nou, dar CMake nu o face automat, puteți atinge și include fișierul CMake sau pur și simplu treceți --cmake-force-configure
.
un caz în care ați putea dori să invoce make clean
este de a verifica din nou dacă codul are avertismente compilator. Odată ce un fișier sursă a fost compilat de obicei nu este recompilat până când acesta (sau orice anteturi incluse)) schimbat. Pe acea primă construcție s-ar putea să vedeți un avertisment compilator, dar pe compilări consecutive (presupunând că fișierele nu au modificări) nu veți vedea din nou avertismentul compilatorului. Trecerea --cmake-clean-first
este o modalitate bună de a vă asigura că toate fișierele sunt recompilate.
uneori, directorul build conține stare suplimentară din compilările anterioare care ar putea afecta următoarele compilări (de exemplu, o versiune anterioară a pachetului a creat unele fișiere în directorul build). Acestea nu ar fi curățate și ar putea afecta următoarele construcții chiar și după ce logica care le-a creat a fost eliminată. Deci, acesta ar fi un caz în care ștergerea întregului director build
ar ajuta.
un alt caz aș recomanda ștergerea directorului build
este atunci când întâmpinați o problemă pe care nu o înțelegeți. De asemenea, este de a reproduce o problemă folosind o construcție proaspătă înainte de a o raporta într-un bilet. Începând cu o construcție proaspătă, s-ar putea rezolva orice stare incomodă s-a construit în timp / pe baza a ceea ce s-a făcut în trecut.
dacă aveți ccache
configurarea unei reconstrucții complete nu este atât de costisitoare, deoarece o mulțime de artefacte de construcție au fost memorate în cache înainte, astfel încât, de obicei, nu va dura întreaga perioadă de timp pentru o construcție nouă.