2011-08-04 25 views
4

爲什麼我的節目很好,沒有警告編譯當我輸入g++ program_name但是當我鍵入gcc program_name我得到了一個未定義引用錯誤的screenfuls ...我是否需要做一些特殊的事情來讓我的C++程序使用gcc進行編譯?

我使用標準庫了不少,這裏是我的包括:

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

using namespace std; 

我問的原因是我花了所有時間爲codeeval.com challange開發解決方案。它使用g ++編譯時可以很好地工作,但不會用gcc編譯。長篇小說,當codeeval試圖運行我的東西時,雖然我不知道他們是如何進行測試提交的,但得分爲0(!),他們只是說:Your program did not pass all the test cases or there may have been warnings printed out at runtime

當然,我不知道他們是如何編譯它......他們說:

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

(因爲在他們提交guidlines一個錯字,可能其他的東西,是嗎?)

他們也說他們接受C++ 4.3.4的解決方案。我正在運行cywin,4.3.4是我的gcc版本。

是否有其他人曾經將C++代碼提交給codeeval.com存在問題?

我儘量不超沮喪,但在這一點上,他們似乎更喜歡codeevil.com我...在標準C++庫默認

+2

C++代碼僅用g ++編譯。 gcc是用於C代碼的。 – iammilind

+0

'man gcc'說'gcc - GNU項目C和C++編譯器' – Jimmy

+0

g ++是C++的,並且是gcc之上的。你可以檢查gcc和g ++的工具大小來得出這個結論。 – Arunmu

回答

5

GCC犯規鏈接。將-lstdC++添加到鏈接行,或者僅使用g ++進行編譯。

+0

是的,但我只是提交.cpp文件,並且他們負責構建和鏈接它...在* nix環境中是否有標準位置的C++頭文件?我是否需要在包含聲明中填寫完整路徑?我寫的是通用的權利?關於爲什麼我的代碼在代碼使用的構建過程中失敗的任何想法? – Jimmy

+0

@Jimmy:你問過關於這個問題的人嗎?他們更有可能得到這個答案。 –

+0

@Benjamin:剛剛與他們聯繫......我的錯是因爲有了stackoverflow抽搐:)你們總是更好更快......這個問題可能會被刪除,但除此之外,還有什麼可以說出gcc的話編譯C++代碼;) – Jimmy

1

嚴格地說,「gcc」是Gnu C編譯器,「g ++」是相應的C++編譯器。就個人而言,我更喜歡使用前者用於C,後者用於C++,而不是依賴文件後綴或命令行參數。

相關問題