为什么我必须在Microsoft Visual Studio C++应用程序中 #include "stdafx.h"?
Why do i have to #include "stdafx.h" in Microsoft visual studio c++ applications?
如果我使用普通的文本编辑器或Code::Blocks,则不会出现此问题。但在visualstudio中,我必须包含stdafx.h头文件,以便编译程序时不会出错。我想知道这个头文件的用途是什么,为什么它在visualstudio中。我正在使用visual studio enterprise(2015)。
StdAfx.h是使用Visual Studio的新建项目向导创建标准项目时,用于生成预编译头的默认文件名(请参见创建预编译标题文件)。预编译头可以通过转储解析和预编译头的二进制表示来显著减少编译项目所需的时间。通常,只有很少更改的标头才应该包含在预编译标头中(WindowsSDK标头、C++标准库标头、CRT标头等)
预编译头的使用是通过/Y(预编译的头)编译器开关控制的。如果不希望使用预编译头,请确保在项目设置中既没有设置/Yc(创建预编译头文件)也没有设置/Yu(使用预编译的头文件)。
如果要使用预编译头,但不希望(或不能)将预编译的头文件作为第一个包含在所有编译单元中,则可以改用/FI(名称强制包含文件)编译器开关。
相关文章:
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- CMake导出的库-在客户端应用程序中找不到include/Lib路径
- 如何在<QtWin>应用程序中包含 #include - QtWinExtras
- 视觉C++ 尝试编译 gstreamer 应用程序时出现的问题 #include < anyfile.h>
- 为什么我必须在Microsoft Visual Studio C++应用程序中 #include "stdafx.h"?