gpt4 book ai didi

c++ - macOS 中的 CMake,预编译头文件 (.pch) 支持

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:06:56 26 4
gpt4 key购买 nike

我正在考虑将我的项目编译从繁琐的 Xcode 转移到方便的 CMake 环境中。

但是,我无法在模拟 Xcode 流程的 macOS 中找到对预编译头文件 (.pch) 的 cmake 支持。

在 Xcode 中,第一阶段是 ProcessPCH其中pch文件compile是根据源代码语言编译为独立文件(我的项目包含mmmcpp文件)

即:

1. objective-c(.m): `-x objective-c-header` 
2. objective-c++(.mm): `-x objective-c++-header`
3. c++(.cpp): `-x c++-header`
...

结果是带有后缀 .pch.pch 的二进制 Macho 目标.

然后,为了使用项目中的每个源文件预编译 pch,将以下标志添加到编译命令 -include <pch_output_file_from_the_previous_stage>

在 CMake 中有什么方法可以这样做吗?有没有等效的选择?

编辑:

我透露曾经可以使用常规 .h 为 macOS 项目设置预编译头文件文件和 GCC 编译器,但我还没有找到 clang/clang++ 的相应标志现在由 Xcode 使用

set_target_properties(
executable
PROPERTIES
XCODE_ATTRIBUTE_GCC_PREFIX_HEADER "path/stdwx.h"
XCODE_ATTRIBUTE_GCC_PRECOMPILE_PREFIX_HEADER "YES"
)

最佳答案

CMake 刚刚获得了对 PCH 的支持,它应该在即将于 2019 年 10 月 1 日发布的 3.16 版本中可用:

https://gitlab.kitware.com/cmake/cmake/merge_requests/3553

  target_precompile_headers(<target>
<INTERFACE|PUBLIC|PRIVATE> [header1...]
[<INTERFACE|PUBLIC|PRIVATE> [header2...] ...])

目前正在讨论支持在目标之间共享 PCH:https://gitlab.kitware.com/cmake/cmake/issues/19659

这也包括对 xcode 生成器的支持。

关于c++ - macOS 中的 CMake,预编译头文件 (.pch) 支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48396587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com