gpt4 book ai didi

c++ - 有没有一种在 VS 中构建预编译 header 的方法不会使我的代码难以在 GCC 中构建?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:13:11 24 4
gpt4 key购买 nike

过去,我在 VC 中使用预编译头文件来加快编译时间,但通常只在基本上只是一个小源代码目录的较小项目中使用。由于 VC++ 要求所有文件都包含完全相同的 header ,而不管路径如何(比如“foo.h”而不是“../foo.h”),当你有不同的源代码嵌套目录时,事情就会变得很棘手。如果我所有的文件只是

#include "foo.h" 

它可以工作,但只有当我打开预编译头文件时。为了在所有情况下都能正常工作,我需要制作虚拟的 foo.h 文件

#include "../foo.h"

这很快就会变得荒谬,尤其是当您有多个级别时。

尽管我通常更喜欢 Microsoft 工具,但我不得不说 GCC 的系统(您可以手动将 header 编译为 .gch 文件)似乎比我优越得多。它的侵入性要小得多,并且不需要您在每个编译单元中都包含所有 header ,如果您在没有预编译 header 的编译器上构建,那将是丑陋且缓慢的。

我是否遗漏了有关 VC 版本的信息?我专业从事的大型项目都没有使用预编译头文件,我想确保在我放弃并接受更长的编译时间之前给他们一个公平的摇晃。

有没有更简洁的方法来做到这一点?

谢谢!

最佳答案

是否可以更新项目包含路径,因此无需创建单独的 header 。我们使用头文件 Common/Common.h 在所有项目中创建预编译头文件。

如果问题出在编译时间上,可以采用不同的方法来解决:我们从项目中删除了预编译头文件,因为没有它们,分布式编译速度明显更快。

关于c++ - 有没有一种在 VS 中构建预编译 header 的方法不会使我的代码难以在 GCC 中构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5307688/

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