我是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.
型
有谁能给予我关于如何解决这个问题的见解吗?
4条答案
按热度按时间z4iuyo4d1#
你可以创建一个名为
stdafx.h
的文件,并在其中放置以下行,来创建你自己的“预编译头”:字符串
如果你提供了一个项目(即从Github),其中包括stdafx. h在数百个项目文件中,但未能提供它,创建此文件可能是上述所有建议的替代方案。
yqyhoc1h2#
stdafx.h
是Visual Studio使用的预编译头,您不需要它。1.您似乎错过了
int main()
功能1.是
std::endl
不是std::end1
比如说
字符串
ibps3vxo3#
stdafx.h
是一个预编译的头文件,它是特定于Visual Studio的。预编译的头文件是没有价值的,除非你面临缓慢的编译时间。在你的程序中,你根本不需要它们,所以你可以删除它,一切都会好起来。你可能会想,如果不需要,为什么要把它包括进去呢?
我将解释它:每当我们添加头文件(
#include
)时,编译器将遍历它,检查它,然后在编译CPP文件时编译头文件。对每个包含头文件的CPP文件重复此过程。
如果你在一个项目中有1000个CPP文件,其中包括xyz. h头文件,那么编译器将编译
xyz.h
文件1000次。为了避免这种情况,编译器为我们提供了“预编译”头文件的选项,这样它就只会被编译一次,以加快编译时间。
inn6fuwd4#
有两个问题:a)stdafx. h是不需要的(正如其他人所指出的)。b)'end1'应该是'endl'(注意字母'l'与数字'1')。