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

Fatal error: 'stdafx.h' file not found

本文关键字:文件 stdafx 致命错误 找不到      更新时间:2023-10-16

我是编程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.

谁能告诉我如何解决这个问题?

  1. stdafx.h是Visual Studio使用的预编译头文件,你不需要这个。
  2. 您似乎漏掉了int main()功能
  3. std::endl而非std::end1

所以像这样:

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

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

你可能会猜测,如果它是不需要的,那么为什么我们包括他们?

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

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

如果你在一个项目中有1000个CPP文件,其中必须包含xyz.h头文件,那么编译器将编译xyz.h文件1000次。这可能需要相当长的时间。

为了避免这种情况,编译器给了我们一个"预编译"头文件的选项,这样它只会被编译一次,以加快编译时间。

两个问题:A) stdafx.h不需要(正如其他人所指出的)。b)'end1'应该是'endl'(注意字母'l'和数字'1')。