这个非常简单的代码给了我很多错误:
#include <iostream>
#include <string>
int main() {
std::string test = " ";
std::cout << test;
}
我试图在控制台上输入 gcc -o simpletest simpletest.cpp 在linux上编译它。我不明白为什么它不起作用。发生了什么事?
答案 0 :(得分:9)
尝试使用'g ++'而不是'gcc'。
答案 1 :(得分:8)
添加其他人所说的: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++
答案 2 :(得分:5)
尝试:
g++ -o simpletest simpletest.cpp
答案 3 :(得分:5)
尝试使用g++ -o simpletest simpletest.cpp
。
gcc是C编译器,而g ++是C ++编译器,它也链接在所需的C ++库中。
此外,您必须在return 0;
功能的末尾添加main()
。
答案 4 :(得分:2)
如果您的编译器很挑剔,您可能希望在那里添加所有重要的return 0;
答案 5 :(得分:0)
您宣布您的main()
返回int
但您没有退货声明。添加return 0;
,看看是否有帮助。如果这不能解决您的问题,请尝试编辑您的帖子,以包含您收到的错误中的一些代表性行,也许我们可以为您提供更好的帮助。
答案 6 :(得分: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>...
“简单”是一个相对术语......
比尔