2

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

#include <iostream>
#include <string>

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

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

4

7 回答 7

9

尝试使用“g++”而不是“gcc”。

于 2008-11-05T22:49:46.400 回答
8

补充其他人所说的:g++是 GNU C++ 编译器。 gcc是 GNU 编译器集合(不是许多人认为的 GNU C 编译器)。 gcc用作g++编译 C++ 源代码时的前端。 gcc可以编译 C、C++、Objective-C、Fortran、Ada、汇编等。

它尝试编译失败的原因gcc是您需要在 C++ 标准库中进行链接。默认情况下,g++会这样做,但gcc不会。要使用 链接到 C++ 标准库gcc,请使用以下命令:

gcc -o simpletest simpletest.cpp -lstdc++
于 2008-11-05T23:11:06.467 回答
5

尝试:

g++ -o simpletest simpletest.cpp
于 2008-11-05T22:49:58.413 回答
5

尝试使用g++ -o simpletest simpletest.cpp. gcc 是 C 编译器,而 g++ 是 C++ 编译器,它还链接所需的 C++ 库。

此外,您必须在函数return 0;末尾添加一个。main()

于 2008-11-05T22:50:44.637 回答
2

如果您的编译器很挑剔,您可能希望在最后添加所有重要return 0;的内容

于 2008-11-05T23:04:41.300 回答
0

您声明您main()的退货,int但您没有退货声明。添加return 0;并查看是否有帮助。如果这不能解决您的问题,请尝试编辑您的帖子以包含您遇到的错误中的一些代表性行,也许我们可以为您提供更好的帮助。

于 2008-11-05T22:49:46.277 回答
0

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

但是我的代码,自 1998 年 2 月 13 日(第一条评论)以来一直在使用的代码,用于计算我们孩子的保姆的有效总工资和预扣税,即使对于 g++ 来说也太简单了。就上面的例子而言,我的 Stroustrup-second-edition-compliant 恐龙去了:

// 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>...  

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

账单

于 2012-04-16T19:59:58.580 回答