distcc
Originalförfattare | Martin Pool |
---|---|
Utvecklare | Fergus Henderson |
Stabil frisättning | 3.3 / 3 mars 2018
|
Förvar | |
Skrivet i | C , C++ , Python |
Operativ system | Cross-plattform |
Typ | Kompilator |
Licens | GNU General Public License |
Hemsida |
Inom mjukvaruutveckling är distcc ett verktyg för att påskynda kompileringen av källkod genom att använda distribuerad datoranvändning över ett datornätverk . Med rätt konfiguration kan distcc dramatiskt minska ett projekts kompileringstid.
Det är utformat för att fungera med programmeringsspråket C (och dess derivator som C++ och Objective-C ) och för att använda GCC som sin backend, även om det ger olika grader av kompatibilitet med Intel C++-kompilatorn och Sun Microsystems Sun Studio Compiler Suite . Distcc är fri programvara , distribuerad under villkoren i GNU General Public License .
Design
distcc är designat för att påskynda kompileringen genom att dra fördel av oanvänd processorkraft på andra datorer. En maskin med distcc installerad kan skicka kod som ska kompileras över nätverket till en dator som har distccd- demonen och en kompatibel kompilator installerad.
distcc fungerar som en agent för kompilatorn. En distcc-demon måste köras på var och en av de deltagande maskinerna. Ursprungsmaskinen anropar en förprocessor för att hantera header-filer, förbearbetningsdirektiv (som #ifdef
) och källfilerna och skickar den förbehandlade källan till andra maskiner över nätverket via TCP , antingen okrypterad eller med SSH . Fjärrmaskiner kompilerar dessa källfiler utan några lokala beroenden (såsom bibliotek, rubrikfiler eller makrodefinitioner) till objektfiler och skickar tillbaka dem till upphovsmannen för ytterligare kompilering.
distcc version 3 stöder ett läge (kallat pumpläge ) där inkluderade rubrikfiler skickas till fjärrmaskinerna, så att förbearbetning också distribueras.
Relaterad programvara
distcc var ett alternativ för distribuerade versioner av Apples Xcode- utvecklingssvit före 4.3, men har tagits bort.
Goma
Goma är ett liknande verktyg gjort av google för att ersätta distcc & ccache vid kompilering av krom.
Ccache
ccache är ett annat verktyg som syftar till att minska kompileringstiden genom att cachelagra utdata från samma indatakällfiler. ccache kan också använda distcc som sin backend, vilket ger distribuerad kompilering om den inte redan är cachad genom att använda miljövariabeln CCACHE_PREFIX.
Glass
icecream skapades av SUSE baserat på distcc. Liksom distcc tar icecream kompileringsjobb från en build och distribuerar den mellan fjärrmaskiner som tillåter en parallell konstruktion. Men till skillnad från distcc använder icecream en central server som dynamiskt schemalägger kompileringsjobben till den snabbaste gratisservern.