致命错误:找不到'stdafx.h'文件

时间:2014-03-24 22:30:18

标签: c++ c

我是编程C ++的新手,我正在尝试通过网站(learncpp.com)学习自己,虽然我已经坚持编译我的第一个程序=(。他们使用Visual Studio编写代码,因为我使用的是macbook ,我只是使用vi和终端(或者我应该使用别的东西?)

这是我根据教程编写的helloworld.cpp程序:

#include "stdafx.h"
#include <iostream>
{
     std::cout <<"Hello World!" <<std::end1;
     return 0;
}

当我编译(gcc -Wall hello.cpp)时,我收到错误:

helloworld.cpp:1:10: fatal error: 'stdafx.h' file not found

#include "stdafx.h"
         ^
1 error generated.

有谁能让我了解如何解决这个问题?

3 个答案:

答案 0 :(得分:9)

  1. stdafx.h是visual studio使用的预编译头,你不需要这个。
  2. 您似乎错过了int main()功能
  3. std::endl不是std::end1
  4. 这样的事情:

    #include <iostream>
    int main() {
         std::cout <<"Hello World!" <<std::endl;
         return 0;
    }
    

答案 1 :(得分:1)

两个问题: a)不需要stdafx.h(如其他人所述)。 b)'end1'应为'endl'(注意字母'l'与数字'1')。

答案 2 :(得分:1)

stdafx.h是一个预编译的头文件,它特定于Visual Studio。 除非您面临缓慢的编译时间,否则预编译的头文件将毫无用处。在您的程序中,根本不需要它们,因此您可以删除它们,一切都会很好。

您可能正在猜测是否不需要它,为什么我们要包含它们?

我将解释: 每当我们添加头文件(#include)时,编译器都会遍历它,检查它,然后在编译CPP文件时编译头文件。

对每个包含头文件的CPP文件重复此过程。

如果项目中有1000个CPP文件(其中必须包含xyz.h头文件),则编译器将编译xyz.h文件1000次。可能需要花费一些时间。

为避免该编译器为我们提供了“预编译”头文件的选项,因此该文件只会被编译一次,以加快编译时间。