2010-04-25 77 views
4

我最近開始學習C++,來自Ruby環境我發現它很難以一種仍然編譯正確的方式來構建項目,我一直在使用Code :: Blocks,這是一個非常棒的方法,但是缺點是,當我添加了一個新的頭文件或C++源文件,它會生成一些代碼,儘管它只有3或4行,但我不知道這些行會做什麼。首先我想問一下這個問題:C++項目的結構應該是什麼?

這些線做些什麼?

#ifndef TEXTGAME_H_INCLUDED 
#define TEXTGAME_H_INCLUDED 

#endif // TEXTGAME_H_INCLUDED 

我的第二個問題是,我是否需要#include .h文件和.cpp文件,以及哪個順序。

我的第三個問題是我在哪裏可以找到GNU GCC編譯器,我相信,它與Code :: Blocks打包在一起,以及如何在沒有Code :: Blocks的情況下使用它?我寧願用記事本++開發,因爲這是我習慣於Ruby的方式,但是自從編譯C++之後,您可能會有不同的想法(請給出建議和意見)

在此先感謝,埃爾。

編輯:我在Windows XP &感謝您的照明快速回復!

+0

如果你沒有一個IDE工作,處理該編譯過程你,你一定要了解[Makefile文件(HTTP:// EN .wikipedia.org/wiki/Make_%28software%29)以及可能的工具,如[Autotools](http://en.wikipedia.org/wiki/GNU_build_system)。用[gdb](http:// stackoverflow)安裝[mingw](http://www.mingw.org/wiki/HOWTO_Install_the_MinGW_GCC_Compiler_Suite)和[msys](http://www.mingw.org/wiki/msys) .com/questions/170097/adding-gdb-to-mingw)和一個好的[make and autotools](http://mingw.org/node/48)實用程序可能是一個棘手的過程,但是不能放棄。 – clyfe 2010-04-25 12:03:19

回答

3

回答您的問題:

  • 的行是包括警衛。它們阻止頭文件在任何給定的翻譯單元中被多次包含。如果它包含多次,您可能會收到多個定義錯誤。

  • 頭文件包含在.cpp文件和其他頭文件中。 .cpp文件通常不包含在內。

  • Code :: Blocks附帶的C++編譯器稱爲MinGW GCC,可以在MinGW安裝的bin目錄中找到。要找到它,請通過資源管理器爲'g ++'進行Windows搜索。要使用它,您需要將它所在的目錄放在搜索路徑中。請注意,Code :: Blocks附帶的編譯器版本相當陳舊 - 您可以從here獲得更新的版本。

3

這是一個inclusion guard,用於防止包含兩次.h文件。除了節省時間之外,事實上這通常是避免兩次定義事物所必需的。

您應該只包含.h。 .c文件將以某種形式爲您的程序提供linked。對於小程序,您可以將所有.c文件傳遞給gcc,但較大的程序將涉及中間的.o文件甚至庫(staticdynamic)。

你絕對可以在沒有IDE的情況下工作。有很多方法可以在Windows上安裝gcc編譯器,包括CygwinMinGW。我認爲Code :: Blocks帶有一個gcc可執行文件是正確的,但我不知道它在哪裏或什麼版本。

+1

它帶有mingw 5.1.6,其中包含gcc 3.4.5,這是相當過時的,我爲自己使用TDM的GCC,這是更近期的,也許有一天會發布的新的codeblocks版本,將包括更多迄今爲止的版本。 – smerlin 2010-04-25 12:55:57

1

這些行使得如果一個文件被#included兩次,一切都將繼續工作。這反過來可以讓你把頭文件依賴作爲一個簡單的有向圖來處理,這絕對是最簡單的。

你沒有#include .cpp文件。 (好吧,除非你是一個邪惡的程序員,否則不要這麼做!)

我會讓別人(或谷歌!)告訴你有關gcc的信息,但是如果你要描述你正在使用的平臺,它可能會有所幫助。

-1

您的問題已全部被其他人回答說,除了這一點:

我會在記事本++ 排序的方式而發展,因爲這是我在Ruby,但因爲C語言來 ++是 編譯的,你可能有不同的想法 (請在該 提出建議和意見,以及)

我認爲這是一個非常糟糕的主意。具有集成調試器的完全成熟的IDE,跳轉到符號定義,重構功能,剖析器,智能感知等等,實際上是任何真實世界項目的必備工具。

絕對最好的是Visual Studio *與Visual Assist X **。代碼::塊比較相形見絀;)


*如果你在大學裏學習你通常可以免費得到它通過MSDNAA;否則在Visual Studio Express版本whicih是免費
** 30天評估期

+0

更不用說從PaymySoft購買Vi $ ual現金(ps。我dind't downvote)。 – clyfe 2010-04-25 12:05:40

+0

但是你不覺得如果你自己編寫所有的代碼,而不是自動生成一些代碼會更好嗎? – Ell 2010-04-25 12:09:25

+0

使用Visual Keyboard Xtreme插件,您可以使用鍵盤編輯文件:> – clyfe 2010-04-25 12:10:32

相關問題