Portál AbcLinuxu, 30. dubna 2025 09:13
/* Hello World in C, Ansi-style */ #include <stdio.h> #include <stdlib.h> int main(void) { puts("Hello World!"); return EXIT_SUCCESS; }a Makefile s obsahem:
all: hello gcc -o hello hello.cTeď můžeme program přeložit a vyzkoušet viz:
[petr@soban ~/src/world]$ make cc hello.c -o hello gcc -o hello hello.c [petr@soban ~/src/world]$ ./hello Hello World! [petr@soban ~/src/world]$Potřebujeme-li v tom programu něco změnit, tak celý adresář world zkopírujeme do adresáře world-1.1 se soubory hello.c a Makefile. Teď upravíme soubor hello.c na:
/* Hello World in C, Ansi-style */ #include <stdio.h> #include <stdlib.h> int main(void) { puts("Halo světe! Verze 1.1"); return EXIT_SUCCESS; }Zase to můžeme přeložit a vyzkoušet, ale to nepotřebujeme, potřebujeme vygenerovat soubor patch. Takže vlezeme do adresářů world a world-1.1 a smažeme nepotřebné soubory tak, aby tam zůstaly pouze zdrojáky, tj. soubory hello.c a Makefile. Nyní vygenerujeme ten patch tak, že vlezeme o adresář výše a spustíme:
diff --recursive -c adresář_originálu adresář_noveho > patch-1.1
Takto:
[petr@soban ~/src]$ ls world world-1.1 [petr@soban ~/src]$ diff --recursive -c world world-1.1 > patch-1.1 [petr@soban ~/src]$Tím se nám vytvořil soubor patch-1.1, kde jsou popsané rozdíly. No a jak to potom použít? Ten kdo má starý program world, tak si do něho překopíruje ten soubor patch-1.1 a spustí příkaz patch.
[petr@soban ~/src/world]$ patch < patch-1.1A máme tam novou verzi, kterou si přeložíme a vyzkoušíme:
[petr@soban ~/src/world]$ make cc hello.c -o hello gcc -o hello hello.c [petr@soban ~/src/world]$ ./hello Halo světe! Verze 1.1 [petr@soban ~/src/world]$A to je vše
Dokument vytvořil: Petr Šobáň, 4.3.2006 21:00 | Poslední úprava: zabza, 7.3.2006 11:21 | Další přispěvatelé: djbart | Historie změn | Zobrazeno: 2552×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.