为什么我不能在Visual Studio中禁用预编译头文件?

时间:2014-12-06 03:50:06

标签: visual-studio

我正在尝试在Visual Studio Express 2013 for Windows Desktop(v12.0.30723.00 Update 3)中创建C ++静态库。我不想在我的库中使用预编译头文件。我无法在没有错误的情况下编译最基本的项目。

问题可以很容易地重复如下:

  1. 文件 - >新项目
  2. 选择模板 - > Visual C ++ - > CLR->类库。单击“确定”以在默认位置创建ClassLibrary1。
  3. 在Project->属性中,转到配置属性 - > C / C ++ - >预编译标题,并将预编译标题选项设置为“不使用预编译标题”。
  4. 编辑AssemblyInfo.cpp和ClassLibrary1.cpp文件,并注释掉每个文件顶部的#include“stdafx.h”。
  5. 在Solution Explorer中,右键单击Stdafx.cpp并选择“从项目中排除”。
  6. 重建解决方案。
  7. 我收到以下两个错误:

    1   error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?   AssemblyInfo.cpp   39   1   ClassLibrary1
    2   error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?   ClassLibrary1.cpp   7   1   ClassLibrary1
    

    我是否错过了一个步骤,或者我在此版本的Visual Studio中发现了错误?

2 个答案:

答案 0 :(得分:7)

有时,您可能会花费数小时时间思考一些具有非常基本解决方案的问题。在这种情况下,Active配置是Debug,但我正在更改Release配置的Precompiled Header选项。当我在Debug配置中更改选项时,瞧!没有更多的错误。

答案 1 :(得分:0)

如果不是配置问题,很可能是你在项目中为单个文件启用了预编译头。如果您有 Visual Studio 创建的 stdafx.cpp 文件,这种情况尤其会发生。在这篇文章中看到 selbie 的回答:

C++ Precompiled Header Disabled