gpt4 book ai didi

c++ - 如何为大量 header 生成 .pch?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:30 26 4
gpt4 key购买 nike

我的代码一直使用 libcxx、sdl 和其他一些库。我如何生成 .pch 考虑到每个 header 都可以包含一些其他 header (即使有像#ifdef#include #endif 这样的复杂条件。这就是为什么很难理解所需的头文件列表的原因。我应该只使用在中找到的所有头文件吗?那个文件夹来创建 .pch?在那种情况下使用这样的 .pch 性能怎么样?

更新:如果它很重要,我将把它与 Clang(而不是 GCC)一起使用,并通过 Clang C API 更具体。更新 2:

我已经为单个头文件创建了 pch:

MBA-Anton:pch asmirnov$ clang++ -x c++-header header.h -emit-pch -o header.pch
MBA-Anton:pch asmirnov$ clang++ -include-pch header.pch source.cpp -o source -x c++

但我无法为多个文件生成 pch:

MBA-Anton:pch asmirnov$ clang++ -x c++-header header.h header2.h -emit-pch -o headers.pch
clang: error: cannot specify -o when generating multiple output files

最佳答案

GCC编译器仅适用于一个包含的预编译 header as explained in this answer .因此,如果您想在 GCC 中使用 PCH,您需要为应用程序的所有翻译单元提供一个头文件(并且每个头文件都应该完全以该单个 开头#包含指令)

我猜这样的情况对其他支持一些预编译头文件的编译器也有帮助。

C++ 标准的 future 版本(发布 C++14)可能会定义模块机制。参见例如n4047提案。

请注意,预编译 header 是非常特定于编译器的(对于 GCC,从 GCC 4.9.1 升级到 GCC 4.9.2 时它们甚至可能无法工作),因此您不应过分依赖它们。

关于c++ - 如何为大量 header 生成 .pch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26729319/

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