我对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.有人能给我一些关于如何解决这个问题的见解吗?
发布于 2014-03-25 06:40:57
stdafx.h是Visual Studio使用的预编译头文件,您不需要它。int main()函数std::endl std::endl
所以就像这样:
#include <iostream>
int main() {
std::cout << "Hello World!" << std::endl;
return 0;
}发布于 2018-09-18 16:43:28
stdafx.h是一个预编译头文件,它特定于Visual Studio。除非你面临缓慢的编译时间,否则预编译头文件是毫无价值的。在你的程序中,你根本不需要它们,所以你可以删除它们,一切都会好起来的。
你可能会猜想,如果它不是必需的,那么我们为什么要包含它们?
我将解释它:每当我们添加头文件(#include)时,编译器将遍历它,检查它,然后在每次编译CPP文件时编译头文件。
对每个包含头文件的CPP文件重复此过程。
如果你在一个项目中有1000个CPP文件,其中必须包含xyz.h头文件,那么编译器将编译1000次xyz.h文件。这可能需要一段明显的时间。
为了避免这种情况,编译器为我们提供了“预编译头文件”的选项,这样它将只编译一次,从而加快编译时间。
发布于 2014-03-25 06:38:00
两个问题: a)不需要stdafx.h (如其他人所指出的)。b) 'end1‘应该是'endl’(注意字母'l‘和数字'1')。
https://stackoverflow.com/questions/22621928
复制相似问题