将C ++(。cpp)编译为.exe文件

时间:2016-09-20 14:42:50

标签: c++ visual-studio compilation mingw precompiled-headers

:)非常感谢。

我希望将.cpp文件转换为.exe。

我尝试过(MingW)gcc和g ++。我还尝试在Visual Studio中手动编译它。

不幸的是,无法编译(在Linux和Windows上),因为无法找到预编译的头文件:

stdafx.h: No such file or directory

我尝试手动下载它们(预编译的标题:#include)并将#include <stdafx.h>更改为#include "stdafx.h"以指向手动下载的预读者的当前文件夹。这个&#39;工作&#39;但它汇编了大量的错误,可能是因为它是标题的错误版本(只有我能找到标题的地方在https://sourceforge.net上)

必须有一种更简单的方法吗?

2 个答案:

答案 0 :(得分:1)

您可能使用了需要stdafx.h的项目模板。

要解决此问题,您可以删除cpp文件中的#include "stdafx.h"

或者,在使用VS模板创建新项目时关闭Precompiled header选项。例如,Win32 Console Application模板:

enter image description here

enter image description here

答案 1 :(得分:1)

stdafx.h precompiled header files使用的默认文件名。这是Visual Studio特定的优化,它很少将头文件更改为二进制表示,以加快编译速度。

预编译头文件的一个怪癖是,您必须在每个编译单元的第一个非注释/非空白行中包含用于create the precompiled header file的头。由于这可能变得不切实际(例如,在源表单中使用第三方库时),编译器允许您为您包含头文件。 /FI (Name Forced Include File)编译器开关就是这样做的。

从本质上讲,问题的解决方案是:

  1. 随处删除#include <stdafx.h>指令。
  2. [可选]在Visual Studio项目中启用预编译头文件的创建。
  3. 如果您在步骤2中选择创建预编译的头文件,请使用Visual Studio的/FI编译器开关。