在Windows下,我安裝了MinGW和Eclipse,並使用MinGW GCC工具鏈創建了一個名爲foo的新C++項目,並編譯,運行甚至調試。精彩。Linux上的C++ hello world
仍然在Windows下,我安裝了Cygwin,一個強調我的互聯網連接的史詩事業。最終我指定了Cygwin GCC工具鏈和一個bar的項目名稱。這編譯和運行,但不能通過調試步驟(聲稱它找不到源)。
在Linux下,mint13特別安裝了Eclipse的全部歌曲全跳C++版本,並創建了一個新的C++項目,並選擇了更加鼓舞人心的baz名稱和Linux GCC工具鏈。 Eclipse抱怨它找不到iostream。
我對此感到困惑。如果我啓動一個終端窗口並運行g ++,那麼很顯然,我至少有一些GNU C++的東西。我不知道缺少什麼。 Linux對我來說是一個新世界。有誰可以提供指導嗎?
根據記錄,生成的代碼是在一個名爲Foo.cpp中的文件(或bar.cpp根據項目名稱),看起來像這樣:
#include <iostream>
using namespace std;
int main() {
cout << "Hello World" << endl; // prints Hello World
return 0;
}
@bmargulies - 我知道你的意見是舌頭在臉頰,但我不會使用粉紅色的emacs。我會設置SAMBA並在Windows工作站上使用Textpad,因爲我有足夠的學習空間而不必學習使用新的文本編輯器。我之所以選擇Eclipse是因爲它可能提供了一個集成調試器的工作基準,從而可以在Linux上探索C++的新世界。結合MinGW,確實在Windows上提供了。
我知道這裏的大問題不是工具,它是我對來自不同世界的無知和一系列期望。由於缺乏C++的經驗,這使得C++的使用經驗更加複雜 - 我在C++中的唯一經歷是15年前使用TurboC。
一個非常混亂的來源是用於解決庫引用的機制。
很多項目似乎都使用make,據我所知,這是一種腳本文件,用於編譯和鏈接一個項目或一組項目。 Make似乎有各種各樣的味道,似乎也有使用makefile的替代方法,以及其他替代方法。
[咒罵]真是一團糟。 @Basile - 我並不喜歡使用Eclipse,而且我非常清楚腳本優於點擊使用IDE配置的好處(其中最重要的是可以源代碼控制構建過程)。我感謝你的閱讀清單。也許這是一個愚蠢的(或過早的)問題,但我必須問:沒有像集成編輯器和構建工具的Eclipse這樣的IDE,是否可以進行逐步調試?
@bmargulies - 我同意你的觀點,工具鏈定義可能有問題,但我缺乏進行有意義的調查的背景和經驗。如上所述,我在Windows下使用不同的工具鏈獲得了不同程度的成功,所以有理由得出結論,工具鏈是問題中的重要因素。唉,我不能在Linux下選擇MinGW工具鏈。
繼規範的意見,我能夠從一個命令行編譯Foo.cpp中。hello world程序以期望的行爲執行,但我仍然不知道g ++如何在幻想IDE工具不知道如何解析iostream。
向foo添加了幾行代碼並對其進行編譯,以嘗試gdb。有用!無論誰想象你都可以通過終端窗口進行逐步調試!雖然這有點笨拙。
儘管Basile顯然不需要花哨的IDE,但這有點像說我不需要我的摩托車,因爲我可以走路。我會看看其他所提到的IDE,但我懷疑他們都會使用相同的工具鏈,因此所有人都會被我錯誤配置的任何類似東西所困擾。
巴西爾,原諒我移動球門柱。我最初的目標確實是「編譯並運行hello.cpp」,但gdb不可避免地是下一步。它的工作原理,如果這是80年代初在uni上使用電傳打字機的話,我現在可能會很開心。但這不是八十年代初期,我花了近十年的時間來處理語法着色,自動完成,變量嗅探編輯和繼續調試,所以現在我想要的是(不知所云的草皮,現在我想要的),所有的東西!
使用gnu emacs代替Eclipse進行C++開發:-) – bmargulies
嚴重的是,Eclipse中的工具鏈定義存在問題。 – bmargulies
您只需要'g ++'在Linux上編譯C++代碼(不需要Eclipse或IDE)。但是你需要正確地調用它,學習如何使用'make'和編譯'Makefile'-s等構建器會有所幫助。因此,在編輯器(Emacs,Gedit,Geany ..)中編寫'helloworld.cpp',學會編寫'Makefile',鍵入'make'來構建程序,'helloworld'來運行它。 –