2009-11-17 104 views
4

我有一個unix c編程任務,其中我做了一些高級C網絡編程。這是我進入高級編程的第一步。所以我想知道在Mac上這是什麼工具的最佳組合。使用像Eclipse這樣的IDE是我通常會這樣做的,但我必須製作自己的makefile和東西。所以我想了解如何有效地使用可能是emacs或vim +其他工具。這將是一個相當大的項目,所以我很擔心項目管理和調試問題,以及生產力因素。本質上我想學習程序員如何在專業環境中做到這一點,而不需要膨脹的IDE部分。我正在使用Snow Leopard.i也將在未來深入研究C++和python,所以對於這些人來說可能是有用的。mac osx開發環境

+0

對於大多數情況下,掌握Makefiles將是您最好的朋友,並在命令行上感到自在。 Google for makefile教程,下拉一個已經存在的Makefile副本。以此爲基礎進行編輯 - 編譯 - 調試循環。一旦你對此感到滿意,使用Gnu自動工具鏈(automake,autoconf)。 – t0mm13b 2009-11-18 00:17:39

+0

Makefiles,認真嗎?他問及Mac OS X,而不是HPUX。 XCode人,XCode。 – rpj 2009-11-19 03:01:08

回答

4

我知道你在問怎麼用makefiles/VI/etc來做。但在Mac上,Xcode真的是要走的路,特別是對於大型項目。這是一個非常有效的包裝,它會爲你調用gcc和gdb以及鏈接器。特別是在轉向新平臺時,不必擔心許多煩人的細節,這將是生產力的一次飛躍。這是IDE調試器非常棒。

當然你也可以使用makefile等許多項目(僅以OpenSSL爲例)帶有makefile,你可以在命令行上在Mac上編譯它們,就像在* ix操作系統下一樣,即調用。/configure然後make。但是設置這樣的東西(例如通用二進制文件的編譯器選項等)卻很乏味,而IDE只是一些選項。另外,如果你有谷歌的具體問題,你會發現更多的答案如何用Xcode做到這一點。

如果您想開始使用Xcode,它可以在您的Mac操作系統CD上(它不會自動預安裝),也可以從Apple下載。當你運行它時,只需打開一個類型爲「Application - Commandline Tool」的Mac OS X項目,你就可以在一分鐘內建立一個main.c項目。然後你可以運行它或者在調試器中運行它,並且向它添加更多的源文件相當容易。 (我們將一個大型項目與DLL和取決於exes(整體250000行代碼)移植到Mac,並且讓所有設置都不是你所需要的稱爲小菜一碟),但如果你從頭開始,你會很容易成長起來。

底線是Xcode當然有能力處理大型項目,我無法想象更有效率的方式(我過去曾使用過手寫的makefile等,所以我知道這兩個世界)。

+0

是的,我認爲Xcode是在Mac中使用的工具,但我的擔心是不是更好地學習一個工具,我可以在Linux中使用,以及在我可能不得不在Linux下測試它的情況。多數民衆贊成我唯一的擔憂,否則我wud肯定會去xcode。 – sfactor 2009-11-18 11:15:23

+0

@sfactor:你有興趣學習OS X開發,而不是Linux開發,對嗎?我很抱歉地說,但每個新平臺都帶來了新的挑戰,而開發人員轉向OS X所面臨的(實質上)所需的挑戰之一就是學習XCode。不要賣空自己:學習它,擁抱它,並且喜歡它。你會很高興你做到了! – rpj 2009-11-19 03:02:21

+0

@sfactor:正如我所說的,Unix的做事方式也適用於Mac。當你安裝Xcode時,你會得到安裝gcc和朋友的需要從命令行編譯/鏈接的東西。 另一個有趣的點可能。如果你用Xcode編譯一個程序(例如一個示例程序),你可以看看Xcode如何調用編譯器(在Build窗口中你可以看到所有運行的工具,並且有一個按鈕來查看它們的細節),所以您可以從那裏借用編譯器和鏈接器的參數。 – Nicholaz 2009-11-19 11:30:44

4

Xcode是你的朋友。它是免費的,是一個非常好的IDE。當你啓動XCode時,只需啓動一個新的控制檯應用程序(它將是ANSI C)。

享受。

1

如果學習unix編輯器的基本知識,shell編程,make等是作業的一部分,那麼您只需要深入瞭解並學習需要學習的內容。一些好書會有所幫助。顯然你需要K & R.我一直很喜歡O'Reilly出版的Unix書籍,通常是因爲它們是最薄的。我討厭厚厚的電腦書,因爲他們從來沒有讀過。您還應該學習如何使用手冊頁。

Vim與Emacs是一個宗教選擇。如果你問任何一個Unix傢伙什麼是最好的,他總是會告訴你他最先學到的一個,因爲他有機會從未學過其他。就我而言,我一直使用Vim的時間太長,以至於我的退出鍵已經磨損,而且命令被硬連接到我的大腦中。顯然,我認爲它比emacs好(我從來沒有學過!)如果你足夠幸運有一臺Mac作爲工作站,請安裝mac vim。這很棒。

製作很複雜,以至於你永遠不會真正掌握它。只需學習足夠的編譯和鏈接你的程序。你可以隨時瞭解更多,如果你需要它。

版本控制是一個有趣的問題...我使用RCS的小東西。像vi一樣,它在每臺Unix機器上。對於真正的大型項目,我使用顛覆,但像編輯一樣,大多數人使用他們首先學到的東西。 Git的人會說它是唯一使用的,等等。

命令行調試器很痛苦,這是Xcode的一個主要賣點。我用gdb,但我不記得它是一個愉快的經歷。自從我使用它已經很長時間了,我甚至不記得如何啓動它。現在必須有更好的調試器。試試谷歌。底線,你提到的所有事情都是很大的話題。你需要對每一種都進行切合實際的叮咬,而不是纏在雜草裏。掌握它們可能需要幾年的時間。

最後,我會盡量遠離C++!目標C要好得多。個人偏見!