首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从CMake的.gch target_precompile_headers生成的文件可以跨目标共享吗?

从CMake的.gch target_precompile_headers生成的文件可以跨目标共享吗?
EN

Stack Overflow用户
提问于 2022-06-05 14:14:10
回答 1查看 223关注 0票数 1

我最初尝试将预编译的头文件合并到我的项目中,结果为每个目标目录生成了非常大的(~200 My )和几乎相同的.gch文件。我尝试了下面的方法,我希望它能够生成一个.gch文件,并在目标之间进行共享。但是,CMake仍然为每个目标生成单独的.gch文件。

代码语言:javascript
运行
复制
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文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-05 15:53:13

您需要为每个目标使用target_precompile_headers。如果你像以前一样使用一个生产者,那么消费者应该是这样的:

代码语言:javascript
运行
复制
target_precompile_headers(target1 REUSE_FROM pch)

并且您不需要链接到您的pch“库”。

Docs实际上拥有用于它的部分

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72508057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档