我是否需要做一些特殊的事情才能让我的C ++程序使用gcc进行编译?

时间:2011-08-04 05:24:07

标签: c++ gcc g++

当我输入g++ program_name时,为什么我的程序编译得很好,没有警告,但是当我输入gcc program_name时,我得到了一些未定义的引用错误......

我正在使用标准库,这里是我的包含:

#include<string>
#include<vector>
#include<fstream>
#include<sstream>
#include<iomanip>
#include<iostream>
#include<algorithm>

using namespace std;

我问的原因是我花了这么多时间为codeeval.com挑战开发解决方案。它在使用g ++编译时非常有效,但不能用gcc编译。

长话短说,当codeeval尝试运行我的东西时,我得到0分(!)虽然我不知道他们如何测试提交...他们只是说:Your program did not pass all the test cases or there may have been warnings printed out at runtime。< / p>

当然,我不知道他们是如何编写的......他们确实说:

You submissions are executed in a *NIX type environment. Assume softwares/shells etc are in their standard locations. Nothing else.

(因为他们的提交指南中有拼写错误,其他东西可能会出现吗?)

他们还说他们接受C ++ 4.3.4的解决方案。我正在运行cywin,4.3.4是我的gcc的版本。

有没有其他人在向codeeval.com提交C ++代码时遇到过问题?

我不想让自己感到非常沮丧,但在这一点上,他们似乎对我来说更像是codeevil.com ......

2 个答案:

答案 0 :(得分:5)

默认情况下,gcc不会链接到标准c ++库中。将-lstdc ++添加到链接行,或者只使用g ++编译。

答案 1 :(得分:1)

严格来说,&#34; gcc&#34;是Gnu C编译器,&#34; g ++&#34;相应的C ++编译器。就个人而言,我更喜欢将前者用于C,后者用于C ++,而不是依赖于文件后缀或命令行参数。