När ska man använda cmake clean / configure? redigera
CMake cachar flera uppgifter i filen CMakeCache.txt
. Det här är t.ex. kataloger där specifikt paket har hittats och definitioner passerat med -D
.
några exempel när du vill använda --cmake-clean-cache
:
- ett tidigare hittat paket ska sökas igen eftersom du vill att det ska hittas / användas från en annan plats
- du har passerat en definition innan du inte vill ställas in längre framåt
CMake kör automatiskt konfigurationssteget när någon inkluderad cmake-fil har ändrats. Men ibland beror din logik på ytterligare/externt tillstånd/filer och du behöver CMake för att köra konfigurationssteget igen. (Det finns sätt att berätta för CMake att ändra en specifik icke-CMake-fil bör utlösa en omkonfigurering.) Så om du behöver konfigurera steg för att köra igen men CMake inte gör det automatiskt kan du antingen röra och ingår CMake fil eller bara passera --cmake-force-configure
.
ett fall där du kanske vill åberopa make clean
är att kontrollera om din kod har några kompilatorvarningar. När en källfil har sammanställts är det vanligtvis inte kompileras tills det (eller några ingår rubriker)) ändras. På den första byggnaden kan du se en kompilatorvarning men på efterföljande byggnader (förutsatt att filerna inte har ändrats) skulle du inte se kompilatorvarningen igen. Att passera --cmake-clean-first
är ett bra sätt att se till att alla filer kompileras om.
ibland innehåller byggkatalogen ytterligare tillstånd från tidigare byggnader som kan påverka följande byggnader (t.ex. en tidigare version av paketet skapade några filer i byggkatalogen). De skulle inte rensas upp och kan påverka följande byggnader även efter att logiken som skapar dem har tagits bort. Så det här skulle vara ett fall där radering av hela katalogen build
skulle hjälpa.
ett annat fall skulle jag rekommendera att ta bort katalogen build
är när du stöter på problem som du inte förstår. Det är också att reproducera ett problem med en ny byggnad innan du rapporterar den i en biljett. Att börja med en ny byggnad kan lösa det besvärliga tillståndet som har byggts upp över tiden / baserat på vad som gjordes tidigare.
om du har ccache
setup en fullständig ombyggnad är inte så dyrt eftersom många byggartefakter har cachats tidigare så det brukar inte ta hela tiden för en ny byggnad.