简单的C ++代码不起作用

时间:2008-11-05 22:48:03

标签: c++ gcc g++

这个非常简单的代码给了我很多错误:

#include <iostream>
#include <string>

int main() {
    std::string test = " ";
    std::cout << test;
}

我试图在控制台上输入 gcc -o simpletest simpletest.cpp 在linux上编译它。我不明白为什么它不起作用。发生了什么事?

7 个答案:

答案 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)

对我来说,g ++也是正确的答案,我投了赞成票,谢谢。

但我的代码,我自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>...  

“简单”是一个相对术语......

比尔