草庐IT

c++ - 使用 Boost + GCC + 预编译 header 的编译时间变慢

运行:gcc版本4.2.1(AppleInc.build5664)我创建了一个带有默认预编译header的苹果XCode项目。它看起来很慢,一个没有主要功能的琐碎主文件不包含没有代码编译需要6秒,这是在我升级到新的SSD驱动器之后。我在笔记本电脑上,但我对升级到工作站会缓解我的问题有所保留。如果我关闭预编译头,那么主文件会在一秒钟内完成编译。似乎使用预编译头会对所有文件造成不利影响。这种延迟让我想避免编译和试验不好的代码。这是我在预编译header中包含的内容:#pragmaonce#include#include#include#include#include#include#inc

c++ - #ifdef 无法按预期使用预编译 header

我有如下部分代码:#defineFEATURE_A1voidfunction(){//somecode#ifdefFEATURE_A//codetobeexecutedwhenthisfeatureisdefined#endif//somecode}程序不执行#ifdef-#endif中的代码。但是当我将#ifdef更改为#ifndef并删除#define宏时,代码就会执行。下面的代码按预期工作。//#defineFEATURE_A1voidfunction(){//somecode#ifndefFEATURE_A//codetobeexecutedwhenthisfeatureisd

c++ - Qt项目中如何使用预编译头文件

我的IDE:VisualStudio2010,我使用Qt插件用于VS,Qt版本。4.8.1我在我的Qt项目中尝试创建预编译头文件(pch)时遇到了问题。我在非Qt项目中创建pch的常用方法是:创建标题;包含将在头文件中预编译的文件;对于项目中的每个源文件,如果它将使用pch,请在其属性中说明;对于pch项目状态创建中的一个源文件;在所有源文件中包含pch。由于Qt项目的这些操作失败,我决定它会发生什么,因为pch应该包含在MOC生成的所有文件中。我阅读了QtAssistant中关于预编译头文件的文章并执行了以下操作:创建头文件;对于项目设置选项中的所有.cpp文件,使用pch并创建一个

c++ - 如何有效地使用预编译头文件(使用/Yc 和 Yu 选项)?

我们使用VisualStudio2003(VC71)进行编译。为了减少编译时间,我们更改了构建脚本,使其为每个CPP文件生成预编译头(.pch)文件。makefile中使用的选项:/Yc"StdAfx.h"/Fp"StdAfx.pch"这样目标的编译时间减少了30%。但是任何人都可以帮助我理解它是如何减少编译时间的,即使每次编译每个CPP文件时都会生成pch文件。此外,这是正确的方法吗?我们应该使用Yc和Yu组合吗?我不能使用/Yu选项,因为pch文件应该至少生成一次。 最佳答案 问题假设您有一个您知道不会更改的header列表。例

c++ - 高效共享预编译头文件

我有一个被多个项目使用的框架(其中包括几个示例来展示框架的工作原理)。该框架具有核心、图形、物理、图形用户界面等组件。每个组件都是一个单独的库。还有几种配置。主解决方案文件使用所有可能的配置编译整个项目,以便项目可以使用这些库。由于框架很少被重新编译,尤其是那些从事使用该框架的项目的人(包括我),预编译许多头文件是有意义的。最初我让每个项目/样本都有自己的预编译头文件用于整个项目。每次我都必须重建相同的pch(例如,Debug),所以我决定共享PCH会减少冗余的PCH编译。到目前为止,一切都很好。我有一个编译PCH和库的项目。所有后续项目/示例现在都使用相同的PCH。这非常有效。唯一的

c++ - 重建预编译头文件

我正在尝试将MFC与ProC一起使用。Functions.pc是我执行ProC语法以连接到数据库的地方。因此,我将'Functions.h'包含在对话模型中,我想在其中调用'Functions.h'中的函数。现在我遇到了这个错误。Adddirectiveto'stdafx.h'orrebuildprecompiledheader我知道我需要将'stdafx.h'包含到'Functions.h'中才能正常工作。我做到了。它可以编译,但是当我尝试运行该程序时,它无法识别由'Functions.cpp'创建的ProC语法。我真的不明白如何重建预编译头文件,因为我不理解'stdafx.h'中的

c++ - 带有 DLL 解决方案的预编译 header 。无法打开预编译头文件

当此解决方案使用.lib文件而不是.dll文件时,此方法没有错误。除了一个当前使用预编译header的项目外,我拥有所有项目,没有错误。预编译头称为“LudoGlobal.h”。我试图将最后一个项目链接到这个预编译的头文件(它存在于一个单独的“核心”项目中),但我收到以下错误:Error4fatalerrorC1083:Cannotopenprecompiledheaderfile:'....\Output\LudoSound\Debug\LudoSound.pch':Nosuchfileordirectoryludosoundmanager.cpp1对于每个.cpp文件。为什么是这样

c++ - 将预编译的tensorflow与cmake一起使用

我在CLion中设置了一个使用CMake的C++项目。我正在使用各种第3方库,并且还想集成Tensorflow。我试过bazel将Tensorflow编译成一个共享库libtensorflow.so哪种方法可行,但是仍然有很多我必须修复的依赖项(例如,当前的protobuf版本,一旦我这样做了,就会有更多)。有没有办法使用标准的Tensorflowgit存储库并以某种方式链接为python使用而预编译的库?或者有其他方便的方法吗?Python中的Tensorflow非常适合我。 最佳答案 我知道这个答案已经很晚了,但我遇到了你的确切

c++ - 为什么 Visual Studio 2010 会创建预编译头文件,即使我不要求它?

我安装了VisualStudio2010SP1。我想用C++创建一个简单的Win32控制台应用程序。我单击新建项目\Win32控制台应用程序我点击控制台应用程序,“空项目”没有,“预编译头”没有,“ATL”和“MFC”没有。向导看起来像这样:现在,如果我点击完成,我最终会得到这样一个项目:但是为什么?我不想要预编译的头文件,我只想要一个非常基本的Win32控制台应用程序来练习学习C++。 最佳答案 它们不是预编译的头文件,除非它们是用适当的编译器标志编译的(Yc用于创建pch,Yu用于使用它)。如果选中PrecompiledHead

c++ - 如何使 clang -E 省略预编译头

预编译头.h:#include"stdio.h"主要.cpp:#include"PrecompiledHeader.h"#include"stdio.h"intmain(){return123;}创建预编译头文件:clang-xc++-headerPrecompiledHeader.h-oPrecompiledHeader.pch在main.cpp上运行clang预处理器:clangmain.cpp-include-pchPrecompiledHeader.pch-E这当前会输出很多很多页的输出(stdio.h)。然而,我想得到的只是主函数,并从输出中省略PrecompiledHead