我最初嘗試在我的專案中合并預編譯的頭檔案導致每個目標目錄的 .gch 檔案非常大(~200MB)且幾乎相同。我嘗試了以下方法,我希望它會生成一個生成并在目標之間共享的單個 .gch 檔案。但是,CMake 仍然為每個目標生成單獨的 .gch 檔案。
add_library(pch INTERFACE)
target_precompile_headers(pch INTERFACE project.hpp)
add_executable(target1 src1.cpp)
target_link_libraries(target1 PRIVATE pch)
add_executable(target2 src2.cpp)
target_link_libraries(target2 PRIVATE pch)
是否可以跨多個目標共享 CMake 生成的 .gch 檔案?
uj5u.com熱心網友回復:
您需要使用target_precompile_headers每個您想要 PCH 的目標。像你一樣使用一個生產者,然后消費者應該如下所示:
target_precompile_headers(target1 REUSE_FROM pch)
而且您不需要鏈接到您的pch“庫”。
檔案實際上有它的部分。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/486137.html
