Spis treści:
- 1. Wprowadzenie
2. Konfiguracja- a. ustawienia zmiennych
b. podlinkowanie kompilatorów
c. rozmiar cache'a
d. współdziałanie z distcc
- a. ustawienia zmiennych
ccache służy do prowadzenia cache'a kompilatorów. Jeżeli kompilujemy plik przy jego udziale, zapisuje on wyjście, napotkane ostrzeżenia itd. Przy następnej kompilacji tego samego pliku odtworzy to wszystko z cache'a, oszczędzając czas i zasoby.
Paczka z ccache znajduje się w repozytorium Slackware.
2. Konfiguracja
2. a. ustawienia zmiennych
ccache nie posiada swojego pliku konfiguracyjnego, dlatego też ustawienia trzeba podać mu poprzez zmienne środowiskowe. Najlepiej dopisać je w działającym globalnie /etc/profile lub w działającym dla danego użytkownika ~/.bash_profile. Oto przykład:
Kod: Zaznacz cały
export CCACHE_DIR="/var/tmp/ccache"
export CCACHE_LOGFILE="/var/log/ccache"
Jeżeli odpowiadają nam domyślne ustawienia, nie musimy eksportować żadnych zmiennych. Możemy również wyeksportować je np. tylko dla danego terminala, by skompilować z takimi ustawieniami konkretny pakiet, co daje nam możliwość utworzenia osobnego katalogu dla cache'a dla niego.
2. b. podlinkowanie kompilatorów
Oczywiście samo posiadanie ccache w systemie nie spowoduje jego działania. Trzeba jeszcze sprawić, by kompilatory uruchamiały się za jego pośrednictwem. Ręcznie można zrobić to tak:
Kod: Zaznacz cały
ccache <kompilator> <parametry kompilatora>
Kod: Zaznacz cały
ln -s /usr/bin/ccache /usr/local/bin/gcc
ln -s /usr/bin/ccache /usr/local/bin/g++
ln -s /usr/bin/ccache /usr/local/bin/cc
Może zaistnieć sytuacja, że jednak nie chcielibyśmy tego stosować tak globalnie, ale jedynie dla danego użytkownika albo dla danego pakietu. Wtedy możemy ustawić zmienne środowiskowe, mające wskazywać na kompilatory (rozpoznawane przez configure, znajdujące się w Makefile). Domyślnie są to:
Kod: Zaznacz cały
export CC="ccache gcc"
export CXX="ccache g++"
2. c. rozmiar cache'a
Pozostało określić maksymalny rozmiar cache'a:
Kod: Zaznacz cały
ccache -M <rozmiar>
2. d. współdziałanie z distcc
Możemy też pokusić się o współdziałanie ccache z distcc. Wtedy kompilowane na zdalnych komputerach pliki także będą cache'owane. Wystarczy wyeksportować zmienną CCACHE_PREFIX (również wypadałoby dopisać to do któregoś z podanych już plików):
Kod: Zaznacz cały
export CCACHE_PREFIX="distcc"
Po więcej informacji zapraszam do manuala.
Autor: Zielony