По умолчанию ccache не разрешает символические ссылки при проверке совпадений:
printf '
#include <stdio.h>
int main(void) {
puts("hello");
}
' > main.c
mkdir -p d
cd d
ln -s ../main.c main.c
cd ..
ccache -z
ccache gcc -c main.c
ccache -s | grep -E 'cache (hit|miss)'
ccache gcc -c d/main.c
ccache -s | grep -E 'cache (hit|miss)'
Вывод:
cache hit (direct) 0
cache hit (preprocessed) 0
cache miss 1
cache hit rate 0.00 %
cache hit (direct) 0
cache hit (preprocessed) 0
cache miss 2
cache hit rate 0.00 %
Есть ли способ сделать так, чтобы проверка выполнялась полностью разрешение символических ссылок?
Запрашиваемая, потому что я использую scons, и мне не удалось заставить scons легко прекратить символьные ссылки на исходные файлы в каталог сборки: Как установить отключение duplicate = 0 для всех сборок SCons варианты без повторения опции несколько раз?
Протестировано с ccache 3.4.1.