mikor kell használni CMake clean / configure? szerkesztés

a CMake több információt tárol a CMakeCache.txt fájlban. Ezek például azok a könyvtárak, ahol egy adott csomagot találtak, és a definíciókat a -Dhasználatával adták át.

néhány példa a --cmake-clean-cache használatára:

  • egy korábban talált csomagot újra kell keresni, mivel azt szeretné, hogy egy másik helyről keresse meg/használja
  • olyan definíciót adott át, amely előtt már nem szeretné beállítani az előre haladást

a CMake automatikusan futtatja a configure lépést, ha bármely mellékelt CMake fájl megváltozott. De néha a logikája további/külső állapotoktól/fájloktól függ, és a configure lépés újbóli futtatásához CMake-re van szüksége. (Van mód arra, hogy elmondja a CMake-nek, hogy egy adott nem CMake fájl megváltoztatása újrakonfigurálást indít.) Tehát, ha szüksége van a configure lépés futtatni újra, de CMake nem teszi meg automatikusan akkor sem érintse meg, és tartalmazza CMake fájlt, vagy csak át --cmake-force-configure.

az eset, amikor érdemes hivatkozni make clean, hogy ellenőrizze, ha a kódot bármilyen fordító figyelmeztetések. Miután a forrás fájl már összeállították, hogy általában nem újrafordított, amíg (vagy bármely mellékelt fejlécek)) megváltozott. Ezen az első builden előfordulhat, hogy egy fordító figyelmeztetést lát, de egymást követő buildeken (feltételezve, hogy a fájlok nem változnak) nem látja újra a fordító figyelmeztetését. A --cmake-clean-first átadása jó módja annak, hogy minden fájlt újrafordítsanak.

néha a build könyvtár további állapotokat tartalmaz a korábbi buildekből, amelyek befolyásolhatják a következő buildeket (például a csomag egy korábbi verziója létrehozott néhány fájlt a build könyvtárban). Ezeket nem lehet megtisztítani, és hatással lehet A következő építésekre, még akkor is, ha az őket létrehozó logika eltávolításra került. Tehát ez egy olyan eset lenne, amikor a teljes build könyvtár törlése segítene.

egy másik eset, amelyet javasolnék a build könyvtár törléséhez, az, amikor olyan problémába ütközik, amelyet nem ért. Az is, hogy reprodukálja a problémát egy friss építéssel, mielőtt egy jegyben jelentené. Kezdve egy friss épít lehet megoldani bármilyen kínos állapotban épült fel idővel / alapján, hogy mi történt a múltban.

ha van ccache beállít egy teljes újjáépíteni nem olyan költséges, mivel sok a build leletek már cache előtt, így általában nem fog a teljes időt egy friss épít.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.