Я использую cmake для создания make-файлов. cmake создает линию gcc, содержащую абсолютные штрихи. Чтобы ускорить компиляцию, я использую ccache.ccache и абсолютный путь
Построение одинакового кода из разных мест (например, несколько разработчиков скомпилируют один и тот же код, каждый из которых находится под его домашним каталогом) вызывает пропуски ccache cach.
В Googled это, но не найдено хорошего ответа.
Существуют ли абсолютные пути, влияющие на коммутаторы GCC или входящие в постобработный источник? 'ccache' обычно рассматривает только переключатели и хэшированные постобработки; абсолютные пути не должны иметь значения. ('CCACHE_UNIFY' является исключением.) – ephemient
' -I/home/nicolas/src/foo/lib' является допустимым gcc-переключателем и имеет другой идентичный компилятор, но в вашем каталоге, с '-I/home/ephemient/src/foo/lib', приведет к провалу кеша; он не будет соответствовать записи кэша, созданной моим компилятором. Полагаю, это то, что он имел в виду. –
Нет, 'ccache' явно игнорирует' -I' и другие флаги путей, которые должны влиять только на препроцессор, поэтому обычные случаи (например, такие) хороши. – ephemient