C语言 错误信息:'fatal error'

tkclm6bt  于 12个月前  发布在  其他
关注(0)|答案(4)|浏览(119)

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


有谁能给予我关于如何解决这个问题的见解吗?

z4iuyo4d

z4iuyo4d1#

你可以创建一个名为stdafx.h的文件,并在其中放置以下行,来创建你自己的“预编译头”:

#pragma once

#include <iostream>
#include <string>

字符串
如果你提供了一个项目(即从Github),其中包括stdafx. h在数百个项目文件中,但未能提供它,创建此文件可能是上述所有建议的替代方案。

yqyhoc1h

yqyhoc1h2#

  1. stdafx.h是Visual Studio使用的预编译头,您不需要它。
    1.您似乎错过了int main()功能
    1.是std::endl不是std::end1
    比如说
#include <iostream>
int main() {
     std::cout << "Hello World!" << std::endl;
     return 0;
}

字符串

ibps3vxo

ibps3vxo3#

stdafx.h是一个预编译的头文件,它是特定于Visual Studio的。预编译的头文件是没有价值的,除非你面临缓慢的编译时间。在你的程序中,你根本不需要它们,所以你可以删除它,一切都会好起来。
你可能会想,如果不需要,为什么要把它包括进去呢?
我将解释它:每当我们添加头文件(#include)时,编译器将遍历它,检查它,然后在编译CPP文件时编译头文件。
对每个包含头文件的CPP文件重复此过程。
如果你在一个项目中有1000个CPP文件,其中包括xyz. h头文件,那么编译器将编译xyz.h文件1000次。
为了避免这种情况,编译器为我们提供了“预编译”头文件的选项,这样它就只会被编译一次,以加快编译时间。

inn6fuwd

inn6fuwd4#

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

相关问题