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

#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; ,看看是否有帮助。如果这不能解决您的问题,请尝试编辑您的帖子,以包含您收到的错误中的一些代表性行,也许我们可以为您提供更好的帮助。

对我来说,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>...  

&QUOT;简单&QUOT;是一个相对的术语......

比尔

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top