题
这个非常简单的代码给了我很多错误:
#include <iostream>
#include <string>
int main() {
std::string test = " ";
std::cout << test;
}
我试图在控制台上输入 gcc -o simpletest simpletest.cpp 在linux上编译它。我不明白为什么它不起作用。发生了什么事?
解决方案
尝试使用'g ++'而不是'gcc'。
其他提示
添加其他人所说的: g ++
是GNU C ++编译器。 gcc
是GNU编译器集合(不是 GNU C编译器,正如许多人所假设的那样)。在编译C ++源代码时, gcc
充当 g ++
的前端。 gcc
可以编译C,C ++,Objective-C,Fortran,Ada,汇编等。
无法尝试使用 gcc
进行编译的原因是您需要在C ++标准库中进行链接。默认情况下, g ++
执行此操作,但 gcc
不执行此操作。要使用 gcc
链接到C ++标准库,请使用以下命令:
gcc -o simpletest simpletest.cpp -lstdc++
尝试:
g++ -o simpletest simpletest.cpp
尝试使用 g ++ -o simpletest simpletest.cpp
。
gcc是C编译器,而g ++是C ++编译器,它也链接在所需的C ++库中。
此外,您必须在 main()
函数的末尾添加 return 0;
。
如果您的编译器很挑剔,您可能希望在那里添加所有重要的返回0;
您将 main()
声明为返回 int
,但您没有return语句。添加 return 0;
,看看是否有帮助。如果这不能解决您的问题,请尝试编辑您的帖子,以包含您收到的错误中的一些代表性行,也许我们可以为您提供更好的帮助。
但我的代码,我自1998年2月13日以来一直在使用的一点点(第一条评论),为我们孩子的保姆计算有效的总薪酬和预扣税,即使对于g ++来说,也很简单。就上面的例子而言,我的Stroustrup-second-edition兼容恐龙:
// too simple!
#include <iostream.h>
#include <stdlib.h>
main() {
cout << "Hello World!" << endl;
}
这将为您提供错误消息的完整终端窗口。除花括号外的所有东西都是错误的!并且它缺少一条返回线。时间到了,这将在商业C ++开发环境中正确编译和运行......
踢它新学校,我现在正在使用: //够简单
#include <iostream>
#include <stdlib.h>
int main(int argc, char* argv[] ) {
std::cout << "Hello World!" << std::endl;
// TODO - this ought to return success, 0
}
原始提问者有std :: cout并使用了来自
的字符串 <string>...
&QUOT;简单&QUOT;是一个相对的术语......
比尔