Når skal Du bruke CMake clean/configure? rediger
Cmlag bufrer flere opplysninger i filen CMakeCache.txt
. Dette er f. eks kataloger der spesifikk pakke har blitt funnet og definisjoner bestått med -D
.
Noen eksempler når du vil bruke --cmake-clean-cache
:
- en tidligere funnet pakke skal søkes på nytt siden du vil at den skal bli funnet / brukt fra et annet sted
- du har bestått en definisjon før du ikke vil bli satt lenger fremover
CMake kjører automatisk konfigurasjonstrinnet når en inkludert CMake-fil er endret. Men noen ganger er logikken din avhengig av ekstra / ekstern tilstand / filer, og Du trenger CMake for å kjøre konfigurasjonstrinnet igjen. (Det finnes måter å fortelle CMake at endring av en bestemt ikke-CMake-fil skal utløse en omkonfigurering.) Så hvis du trenger konfigurasjonstrinnet for å kjøre igjen, men CMake gjør det ikke automatisk, kan du enten berøre Og inkludere CMake-fil eller bare passere --cmake-force-configure
.
et tilfelle der du kanskje vil påkalle make clean
, er å sjekke om koden har noen kompilatorvarsler. Når en kildefil er kompilert, blir det vanligvis ikke rekompilert før det (eller noen inkluderte overskrifter)) endret. På den første bygningen kan du se en kompilatoradvarsel, men på påfølgende bygg (forutsatt at filene ikke har endret seg), vil du ikke se kompilatoradvarslingen igjen. Passerer --cmake-clean-first
er en god måte å sikre at alle filer blir rekompilert.
noen ganger inneholder build-katalogen ekstra tilstand fra tidligere bygg som kan påvirke følgende bygg (for eksempel en tidligere versjon av pakken opprettet noen filer i build-katalogen). De ville ikke bli ryddet opp og kunne påvirke følgende bygg selv etter at logikken som skaper dem, er fjernet. Så dette ville være et tilfelle der sletting av hele build
katalogen ville hjelpe.
Et annet tilfelle jeg vil anbefale å slette katalogen build
er når du får problemer du ikke forstår. Det er også å reprodusere et problem ved hjelp av en ny bygning før du rapporterer det i en billett. Starter med en fersk bygge kan løse hva vanskelig tilstand har bygget opp over tid / basert på hva som ble gjort i det siste.
hvis du har ccache
oppsett er en full gjenoppbygging ikke så kostbar siden mange av bygningsartefaktene har blitt bufret før, så det vil vanligvis ikke ta hele tiden for en ny bygning.