问题标签 [precompiled-headers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
visual-c++ - 在调试模式下尝试将预编译头文件与 VS2010 (VC100) 一起使用时,如何消除错误 C2859?
我正在尝试升级旧解决方案以使用 VS2010 (VC100)。
我进行了设置,以便 stdafx.cpp 将从 stdafx.h 创建一个预编译的头文件 stdafx.pch。然后指示包含 stdafx.h 的所有其他 .cpp 文件使用预编译头文件。
这些帖子帮助我走到了这一步:
现在,当我在发布模式下构建时,一切都很好。但是,当我尝试在调试模式下构建时,我收到一大堆错误:
Error 1 error C2859: [removed]\debug\vc100.idb 不是创建此预编译头时使用的 idb 文件,重新创建预编译头。
我相信这个 .idb 文件是 Visual Studio 创建的中间调试文件。
为什么我会收到此错误?换句话说,为什么它在创建预编译头文件时不使用这个 .idb 文件?
我不确定您需要什么进一步的信息才能给我答案,所以请问我是否需要提供更多信息。
c++ - 如何让 GCC 在当前源文件目录之前的目录中搜索头文件?
我在具有多架构构建的项目中使用 GCC 预编译头文件,但是当我尝试将其放置在与当前源目录不同的目录中时,事情就崩溃了。
该文件包含在双引号中,如果我将其更改为尖括号,它可以工作,但问题是我有很多其他项目使用相同的预编译头名称,因此将它们全部更改为尖括号是不可取的因为它可能会在相同文件的 Visual Studio 构建中包含哪个标头产生歧义。
GCC 在其搜索路径之前搜索当前目录中的双引号包含。我可以使用-I-
选项(例如-Ipch_dir.i686 -I-
)解决它,以便在当前目录之前搜索预编译的头文件目录,但不推荐使用此选项。GCC 建议我使用-iquote
,但它的效果与-I-
.
所以问题是如何在不将所有预编译的头文件包含指令更改为尖括号并使用不推荐使用的 GCC 开关的情况下使其工作?
asp.net - IIS 中的简单 asp.net 预编译问题
看起来我对一个简单的问题感到震惊。我正在托管一个预编译的网站。它可以在我的本地盒子中编译并正常工作。但是当我在 IIS 中托管时,它会因以下错误而失败。
无法加载类型“MyHero.Home1”。
我可以在 Bin 中找到 MyHero.dll。我也在对象浏览器中打开了它,可以看到有一个 Home1 类型。MyHero.Home1 类型存在并且是公共的。所以它肯定是预编译的。不确定我在这里缺少什么。这是我第一次使用 VB.NET。
这就是代码背后的样子
部分类的其他部分是设计器生成的。并且在 Home.aspx.designer.vb
我没有上传代码作为它的预编译站点。
我在 Windows server 2003 上使用 IIS。任何指针都会非常有帮助。
我可以看到 Home1。列在对象资源管理器中的 MyHero 命名空间下。只是为了确保我在 Home1 类周围添加了命名空间 Hero,尝试但结果相同。还尝试从 aspx 页面中删除命名空间前缀继承没有帮助。
windows server 2003 上的 IIS 是否存在任何已知问题。.NET 框架和 IIS 的安装顺序是否会影响这一点?我在新安装的盒子上托管这个。它在我的开发框中运行良好。
感谢dariom,我已经安装了融合日志查看器。这是绑定日志,似乎没有给出太多线索。可以 ?
iphone - iPhone 应用程序构建副本.pch.gch
我正在将大 (12 mb) Prefix.pch.gch 文件复制到我的最终 iPhone 应用程序中。它在项目中不存在,仅显示在构建日志中。它增加了我原本很小的应用程序大小。有什么建议可以阻止 xcode 复制它吗?有谁知道它是什么?我做了一些研究,它看起来像是预编译头文件的缓存文件,但我找不到任何关于它为什么是 12 mb 的信息。
xcode - XCode 每次都编译所有源代码
每次我构建项目时,XCode 都会编译所有源代码,这需要很多时间。看起来预编译的标头不起作用。在我更改项目位置之前它工作正常。我该怎么做才能让它发挥作用?
UPD:几分钟前就修好了。我不知道怎么做。
UPD2:又开始了!每次构建时,XCode 都会编译所有源代码。如何管理这个问题?
xcode - 预编译的头文件名卡住了
我是 xcode 的新手,我一定遗漏了一些东西。
创建一个新的命令行项目。称之为 tempprog(例如)。
选择项目/编辑项目设置。
编辑前缀标头的名称 (tempprog_Prefixz.pch)。
构建 - 当然,它会失败,寻找 tempprog_Prefixz.pch
现在将前缀标头的名称改回 tempprog_Prefix.pch。
再次构建 - 它应该工作,但没有。它仍在寻找 tempprog_Prefixz.pch
清洁并不能纠正这种情况。我在这里想念什么?Prefixz.pch 名称保留在哪里?如果您查看 ProcessPCH 命令的构建输出,您会发现它仍想使用 Prefixz。
c++ - 是否应该重新包含已经在项目范围预编译头文件中的内容?
我有一个预编译的头文件 stdafx.h 用于我项目中的所有源文件。因此,stdafx.h 中的所有头文件在项目的所有代码文件中都可用。
我不确定是否要重新包含已经在预编译头文件中的内容。你们有什么感想?
例如
标准数据文件
my_class.h
主文件
c++ - 在不重新编译预编译头文件的情况下重新构建
有时我需要重新构建我的项目,但我不希望每次这样做时都重新编译预编译的头文件——这有点违背了目的,至少在这种情况下是这样。有什么方法可以让 Visual Studio 在不重新编译 PCH 的情况下重建并根据需要编译 PCH(如果很少更改的标头更改)
c++ - Xcode PCH 问题 - PCH 中的项目未包含在源文件中
我刚刚使用 Xcode 创建了一个“C++ 标准动态”库项目,并使用 LLVM 2.0 进行了编译。我注意到 PCH 文件包含该行#include <iostream>
,但文件Test.cp也包含该#include <iostream>
语句。
奇怪的是,通过删除Test.cp中的语句,构建失败并出现错误,Semantic Issue – Use of undeclared identifier 'std'
尽管该语句也包含在 PCH 中。
为什么 PCH 不起作用?有没有我缺少的设置?我以前从来没有对他们做过任何事情(因为他们总是只是工作)所以我不确定是什么导致它不起作用,即使是一个全新的项目。
c++ - 高效共享预编译头文件
我有一个被多个项目使用的框架(其中包括几个示例来展示框架是如何工作的)。该框架具有核心、图形、物理、gui 等组件。每个组件都是一个单独的库。也有几种配置。
主解决方案文件使用所有可能的配置编译整个项目,以便项目可以使用库。由于该框架很少被重新编译,尤其是有人(包括我)在使用该框架的项目上工作,因此预编译许多头文件是有意义的。
最初,我让每个项目/样本都有自己的用于整个项目的预编译头文件。每次我都必须重建相同的 pch(例如,Debug),所以我决定共享 PCH 将减少冗余 PCH 编译。到现在为止还挺好。我有一个将 PCH 与库一起编译的项目。所有后续项目/示例现在都使用相同的 PCH。这非常有效。
唯一的问题是我看到文件大小增加了。这不是障碍,就像使用该框架的项目打算发布一样,它可以将自己从共享 PCH 中分离出来并自己制作。我这样做是为了快速开发(我实际上创建了一个工具,它为准备构建的新项目/示例创建 VS 项目文件和源文件,并促进升级使用旧项目的先前项目框架的版本)。
无论如何,(我假设)文件大小的增加是因为创建共享 PCH 的独立 VS 项目文件包含来自所有库的所有头文件。我的问题是我是否可以使用条件编译(#ifndef)来减小最终可执行文件的大小?或者可能以某种方式共享多个 PCH 文件(据我所知,这是不可能的,但我可能错了)如果我没有意义,请说出来(用客气的话 :))因为我对 PCH 文件的了解非常有限.
谢谢!
注意:为了重新迭代并说明清楚,到目前为止,我有一个解决方案文件正在编译包括共享 PCH 在内的所有库。现在,如果我重新编译所有示例和项目,它们最多可以在几秒钟或更长时间内编译。以前,每个项目都会重新创建一个 PCH 文件。另外,最初我希望每个库都有一个 PCH,但后来我发现一个源文件不能使用多个 PCH 文件,所以这个选项不可行。另一种选择是编译所有可能的 PCH 文件组合,但这太耗时、繁琐且容易出错。