我最初尝试将预编译的头文件合并到我的项目中,结果为每个目标目录生成了非常大的(~200 My )和几乎相同的.gch文件。我尝试了下面的方法,我希望它能够生成一个.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文件?
发布于 2022-06-05 15:53:13
您需要为每个目标使用target_precompile_headers
。如果你像以前一样使用一个生产者,那么消费者应该是这样的:
target_precompile_headers(target1 REUSE_FROM pch)
并且您不需要链接到您的pch
“库”。
Docs实际上拥有用于它的部分。
https://stackoverflow.com/questions/72508057
复制相似问题