[英]Problem with ccache after changing branches with larger diff
我正在編譯啟用 ccache 的應用程序。 一切正常,直到我將我的 repo 的分支更改為具有更大差異的分支。
流動:
如果我更改為差異小得多的其他分支,ccache 工作正常。
我不知道為什么它在上述情況下不起作用。
以下是我正在使用的選項:
(default) absolute_paths_in_stderr = false
(default) base_dir =
(environment) cache_dir = /ccache
(default) compiler =
(default) compiler_check = mtime
(environment) compiler_type = clang
(default) compression = true
(default) compression_level = 0
(default) cpp_extension =
(environment) debug = true
(environment) debug_dir = /ccache/debug
(environment) depend_mode = true
(environment) direct_mode = true
(default) disable = false
(default) extra_files_to_hash =
(environment) file_clone = true
(default) hard_link = false
(default) hash_dir = true
(default) ignore_headers_in_manifest =
(default) ignore_options =
(environment) inode_cache = true
(default) keep_comments_cpp = false
(default) limit_multiple = 0.8
(environment) log_file = /ccache/ccache-log
(default) max_files = 0
(/ccache/config) max_size = 20.0G
(default) namespace =
(default) path =
(default) pch_external_checksum = false
(default) prefix_command =
(default) prefix_command_cpp =
(default) read_only = false
(default) read_only_direct = false
(default) recache = false
(default) reshare = false
(environment) run_second_cpp = true
(default) secondary_storage =
(environment) sloppiness = clang_index_store, include_file_ctime, include_file_mtime, ivfsoverlay, locale, modules, pch_defines, system_headers, time_macros
(default) stats = true
(default) stats_log =
(default) temporary_dir = /ccache/tmp
(default) umask =
有人知道我在做什么錯嗎?
PS。 可能是因為我的.hpp
文件時間戳在分支切換期間發生了變化,但是 ccache 對這種時間戳變化沒有抵抗力嗎? 很明顯,在沒有 ccache 的編譯過程中,經過這樣的更改程序將從頭開始編譯,但我認為 ccache 應該對此有所幫助。 我錯了嗎?
我發現了問題所在。 我正在使用預編譯頭文件,並將它們編譯為.gch。 當該pch中包含的某些header的時間戳發生變化時,會出現問題,因為新生成的.gch與前一個不同,然后必須重新編譯使用該pch的所有.cpp文件,因為ccache沒有找到它們的命中.
在這種情況下,我的解決方案是使用 pch 文件作為前綴頭文件,並且只包含它們而不是將它們用作預編譯頭文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.