首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >致命错误:找不到'stdafx.h‘文件

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

Stack Overflow用户
提问于 2014-03-25 06:30:18
回答 3查看 58.3K关注 0票数 11

我对C++编程是个新手,我正在尝试通过网站(learncpp.com)学习自己,尽管我已经被困在编译我的第一个程序=( .他们使用Visual Studio来编写代码,因为我使用的是macbook,所以我只使用vi和终端(或者我应该使用其他东西?)

以下是我根据本教程编写的helloworld.cpp程序:

代码语言:javascript
复制
#include "stdafx.h"
#include <iostream>
{
     std::cout <<"Hello World!" <<std::end1;
     return 0;
}

当我编译(gcc -Wall hello.cpp)时,我得到了这个错误:

代码语言:javascript
复制
helloworld.cpp:1:10: fatal error: 'stdafx.h' file not found

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

有人能给我一些关于如何解决这个问题的见解吗?

EN

回答 3

Stack Overflow用户

发布于 2014-03-25 06:40:57

  1. stdafx.h是Visual Studio使用的预编译头文件,您不需要它。
  2. 您似乎遗漏了int main()函数
  3. It is std::endl

std::endl

所以就像这样:

代码语言:javascript
复制
#include <iostream>
int main() {
     std::cout << "Hello World!" << std::endl;
     return 0;
}
票数 12
EN

Stack Overflow用户

发布于 2018-09-18 16:43:28

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

你可能会猜想,如果它不是必需的,那么我们为什么要包含它们?

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

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

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

为了避免这种情况,编译器为我们提供了“预编译头文件”的选项,这样它将只编译一次,从而加快编译时间。

票数 7
EN

Stack Overflow用户

发布于 2014-03-25 06:38:00

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22621928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档