我正在寻找一种直接的方法来使用Eclipse/CDT为C++项目使用预编译头文件。这些东西在从命令行运行时确实有效,但我正在寻找一种将其集成到Eclipse中的简单方法。有什么建议吗?! 最佳答案 只是为了帮助其他可能偶然发现这一点的人(因为我花了一些时间来解决这个问题)首先要做的是使用pch.cpp和pch.h文件创建一个PCH文件夹(如果需要)。pch.cpp:(这个文件是用来编译.gch的)#include"pch.h"pch.h:#include#include//morestuffthat'snotchanginganyt
我最近购买了BjarneStroustrup撰写的“编程:使用C++的原理和实践”一书,并一直在阅读它。我目前停留在一个早期项目中,我需要输出一些文本字符串。在Windows10LenovoYoga2Pro笔记本电脑上使用VisualStudioCommunity2015update1,我尝试编译该项目但遇到了详细错误:“无法打开预编译头文件:Debug\FindingtheUpstairsBathroom.pch':没有这样的文件或目录”。该项目的名称恰如其分地命名为“FindingtheUpstairsBathroom.cpp”。这是代码://Ihavetheheaders"std
有没有办法让预处理器检测当前代码是否在翻译单元使用(或正在创建)预编译头文件?---我现在面临的实际问题是我正在进行的项目是通过预编译几乎所有头文件来滥用PCH。也就是说没有你可以从#includes获得清晰的依赖管理,而且编译时间很糟糕。实际上,每次更改都会触发完全重建。该应用程序太大了,只能一次修复它,一些老家伙拒绝了相信预编译一切都是不好的。我必须先证明它。所以我必须一步一步来,并确保我的更改不会影响以旧的PCH方式编译的代码。我的计划是对PCH.h进行ifdef处理,并在有空闲时间时处理非PCH版本。#ifdefUSES_PCH#include"PCH.h"#elif//inc
我试图绕过/YC和/MP相互排斥的限制。我想利用预编译header和多进程编译。到目前为止,我的答案是创建2个项目而不是1个。第一个是pch生成库,仅包含一个stdafx.h和stdafx.cpp。它生成在stdafx.cpp上设置了/YC的pch文件那个库成功生成了pch文件!作为旁注,pch库项目还指定了/YU指向其stdafx.h和/Fp引用输出pch文件。我的第二个项目是我的主要可执行文件。它指定了/MP但没有为任何文件指定/YC,并且不包含stdafx.h或stdafx.cpp。相反,我将项目的/YU设置为pch库的stdafx.h,将/Fp设置为pch库生成的pch。然后我
我在编译(编辑:抱歉,我在这里没有说清楚:我实际上是指“重建”)我的混合模式项目时不时(不是每次)收到此错误消息。VisualStudio告诉我“使用‘-Zm114’或更高的命令行选项重新编译”。原则上没问题,我照VS说的做。但是目前,这有两个问题:为什么它不会在我进行重建时每次发生?如果我理解正确,编译器在编译我的项目时内存不足。因此,如果我进行重建,清除所有以前的工作,如果我不做任何更改,下次它不应该也用完内存吗?为了安全起见,我已经在这个项目的所有配置中为Zm(即Zm120)指定了120的值。为什么我会收到带有此较低值的错误消息?还是建议值114只是VS的胡乱猜测?
我的代码一直使用libcxx、sdl和其他一些库。我如何生成.pch考虑到每个header都可以包含一些其他header(即使有像#ifdef#include#endif这样的复杂条件。这就是为什么很难理解所需的头文件列表的原因。我应该只使用在中找到的所有头文件吗?那个文件夹来创建.pch?在那种情况下使用这样的.pch性能怎么样?更新:如果它很重要,我将把它与Clang(而不是GCC)一起使用,并通过ClangCAPI更具体。更新2:我已经为单个头文件创建了pch:MBA-Anton:pchasmirnov$clang++-xc++-headerheader.h-emit-pch-o
在我将Xcode更新为Xcode8之后。我发现如果我在.pch文件中导入供应商框架头文件。会有错误。找不到“xxx”.h文件如:我想导入一个名为友盟的头文件的框架。所以我将下面的代码写入我的XXX-prefix.pch#import但是错误UMMobClick/MobClick.hfilenotfound出现了。Xcode是否有任何禁止在.pch文件中导入供应商框架头文件的限制? 最佳答案 我在使用.pch文件的遗留Xcode项目中遇到了类似的问题——该文件被忽略了。修复在build设置中,该文件的原始路径假定它从项目根目录开始:S
我有包含这段代码的pch文件:#import"ServerModel.h"enum{SAVE=1,REMOVE=2,REMOVE_ALL=3};typedefNSIntegerRequestType;我正在尝试在ServerModel.h中使用RequestType,但编译器对我的枚举一无所知。我尝试为我的枚举创建头文件并将此文件导入pch文件,但没有任何改变。所以基本问题是:我不能在文件中使用.pch文件中的枚举,这些文件是在此pch文件中#import编辑的。有什么办法可以解决这个问题吗?pch文件是放置枚举的好地方吗?更新:我试图将所有这些枚举放在一个头文件中,并将#import
终于接受了pod。一切似乎都正常,例如,放入Parse,安装pod,在viewcontroller.m文件中看到它就好了。但是..现在我想将Parse放到pch中,因为我经常使用它。我的pre-pods行是:#import"Parse/Parse.h"我试过了,#import和#import..以及我能想到的每一个变体,没有运气。我当然可以在需要的地方放弃进口,但这样更方便,尽管建议不要使用这条路线。我觉得最令人困惑的是UI为我预填了第二个选项的路径,所以它找到了它,但是在构建时,它失败了找不到“Parse/Parse.h”文件。感谢您提出可行的语法建议。
我正在VS2012中处理一个VC++项目,完整编译需要大约8-10分钟。我知道PCH可以将编译时间加快10倍。我目前在我的项目中禁用了PCH,我在需要的地方包含了头文件。如何开始使用PCH?我到处寻找“如何”指南,但我得到的只是文档。我假设我必须:为PCH配置我的项目,创建一个空白的PCH头文件从每个.cpp收集标题文件并将其放入PCH头文件修改每个文件,删除所有头文件导入重新编译并希望一切正常;)我如何开始这个(特别是#1)?您是否修改过一个项目以使用PCH,其中有哪些绊脚石或常见问题/问题?PCH是否会导致任何问题,还是与正常包含的编译时/运行时行为相同?是否有工具可以自动化该过程