当我输入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 ......
答案 0 :(得分:5)
默认情况下,gcc不会链接到标准c ++库中。将-lstdc ++添加到链接行,或者只使用g ++编译。
答案 1 :(得分:1)
严格来说,&#34; gcc&#34;是Gnu C编译器,&#34; g ++&#34;相应的C ++编译器。就个人而言,我更喜欢将前者用于C,后者用于C ++,而不是依赖于文件后缀或命令行参数。