【发布时间】:2008-11-05 22:48:03
【问题描述】:
这个非常简单的代码给了我很多错误:
#include <iostream>
#include <string>
int main() {
std::string test = " ";
std::cout << test;
}
我尝试在 linux 上通过在控制台上输入 gcc -o simpletest simpletest.cpp 来编译它。我不明白为什么它不起作用。发生了什么?
【问题讨论】:
这个非常简单的代码给了我很多错误:
#include <iostream>
#include <string>
int main() {
std::string test = " ";
std::cout << test;
}
我尝试在 linux 上通过在控制台上输入 gcc -o simpletest simpletest.cpp 来编译它。我不明白为什么它不起作用。发生了什么?
【问题讨论】:
尝试使用“g++”而不是“gcc”。
【讨论】:
补充其他人所说的:g++ 是 GNU C++ 编译器。 gcc 是 GNU 编译器集合(不是 GNU C 编译器,正如许多人所假设的那样)。 gcc 在编译 C++ 源代码时充当 g++ 的前端。 gcc 可以编译C、C++、Objective-C、Fortran、Ada、汇编等。
用gcc编译失败的原因是你需要在C++标准库中链接。默认情况下,g++ 会这样做,但gcc 不会。要使用 gcc 链接 C++ 标准库,请使用以下命令:
gcc -o simpletest simpletest.cpp <b>-lstdc++</b>
【讨论】:
试试:
g++ -o simpletest simpletest.cpp
【讨论】:
试试g++ -o simpletest simpletest.cpp。
gcc 是 C 编译器,而 g++ 是 C++ 编译器,它还链接所需的 C++ 库。
此外,您必须在 main() 函数的末尾添加一个 return 0;。
【讨论】:
如果你的编译器很挑剔,你可能想在最后添加所有重要的return 0;
【讨论】:
您声明您的main() 为返回int,但您没有返回语句。添加return 0; 看看是否有帮助。如果这不能解决您的问题,请尝试编辑您的帖子以包含您遇到的错误中的一些代表性行,也许我们可以为您提供更好的帮助。
【讨论】:
g++ 对我来说也是正确的答案,我投了赞成票,谢谢。
但是我的代码,自 1998 年 2 月 13 日以来一直在使用(第一条评论),用于计算我们孩子的保姆的有效总工资和预扣税,即使对于 g++ 来说也太简单了。就上面的例子而言,我的 Stroustrup 第二版兼容恐龙是:
// 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>...
“简单”是一个相对术语...
比尔
【讨论】: