2011-02-17 30 views
1

我在線上的CS課程建議學生編譯他們的源代碼並在OS UNIX上運行像valgrind這樣的工具。我對UNIX,Linux,他們的工具和c編碼都是全新的。我已經嘗試在VMWare Player 3.1.3上安裝FreeBSD 8.1,甚至設法運行VMWare Tools。但是FreeBSD的文檔讓我在完成常見任務時遇到了很多麻煩,例如掛載NFS或USB設備。事實證明,我需要做到這一點的軟件包沒有安裝或配置,我沒有看到如何安裝它們的直接答案。因此,如果我僅將UNIX用作運行gcc,g ++,valgrind這個CS課程的工具,並且這些可以在Linux上運行,那麼使用Ubuntu Linux可以更快地完成工作。使用Linux而不是UNIX編譯CS課程的c代碼

如果在Linux上編譯,Linux可以用來在UNIX上以相同方式編譯和運行c代碼嗎?或者,如果不是,尋找什麼差異?

感謝

+0

剛纔發現Remote X是由Windows Xming提供的,因爲這個原因。 – 2011-02-17 23:59:30

回答

6

對於新手級的C程序員,如OP,環境的差異是微不足道的。繼續使用Linux。

+0

鬆了一口氣。我想聽到的答案。希望如此:) – 2011-02-17 22:24:19

1

我認爲你可以在Linux上運行您的程序和工具課程的目的,

但我猜你的老師希望你使用FreeBSD是讓你學習,除了其他事情的原因只是編碼你的問題

+0

一旦你瞭解了基礎知識,FreeBSD實際上是相當用戶友好的。閱讀手冊(http://www.freebsd.org/doc/handbook/),這是一個很棒的文檔。要安裝端口,使用portsnap來獲取端口樹,cd進入/ usr/ports//並運行「make install」進行安裝。安裝portmaster以獲得更好的界面。如果你想讓FreeBSD具有簡單的安裝和一切爲你設置,使用PC-BSD(http://www.pcbsd.org/)。你會在/ usr/ports/devel/valgrind中找到Valgrind。您可以通過Freshports找到端口 - http://www.freshports.org。祝你好運! – BCran 2011-02-17 22:32:49

+0

感謝您的提示。剛纔發現Remote X是由Xming for Windows提供的,正是出於這個原因。哈,那會救了我一些悲傷! – 2011-02-17 23:58:37

1

兩者應該是有效的相同。您可能會看到唯一的主要區別是由於使用了不同的版本。我會檢查教師使用的gcc,g ++和valgrind的版本,並確保您的Linux版本具有相同的版本。

+0

+1謝謝你的回答。 – 2011-02-17 22:25:28

1

您也可以使用MinGWCygwin。你提到VMWare,所以我猜你正試圖在Windows環境中啓動並運行環境。它們都允許您在沒有完全安裝基於Linux的系統的情況下使用編譯器和一些工具。在CS課程中,他們會綽綽有餘。

+0

可以mingw或cygwin託管一個valgrind嗎? – osgx 2011-02-17 22:15:59

1

的主要差異太尋找:

  1. 編譯C/C++是不依賴機器。無論如何,如果您需要將編譯後的程序提交給教授,您需要在UNIX上有一個小型環境進行編譯。
  2. 如果您不使用任何非便攜式,則C/C++相當便攜。很難驗證你沒有在兩臺機器之間使用不同的東西,所以你可能希望在UNIX上編譯來驗證你沒有讓一個不可用的庫(或者特定於OS過程,參數,行爲,錯誤等)滑入你的代碼。
  3. 兩臺機器之間的供應商make可能有所不同。這意味着儘管make的核心將以相似的方式運行,但某些功能可能無法在兩者中使用。實際上,您可能不會使用大多數make的擴展功能,但在最壞的情況下,您可能會選擇維護多個Makefile或將自己限制爲一個共同的功能子集。

在這一天結束時,這一切都歸結爲你的教授會想要什麼。賠率是95 +%,你可以完成100%的Linux工作,但教授的要求或評分環境可能會使你必須將你的代碼複製到一個UNIX帳戶中來構建最終的「提交」可執行文件。考慮到大學的UNIX帳戶在筆記本電腦上幾乎不像Linux那樣便攜,與大學計算機「最終驗證/移植」的成本相比,您的作業時間要多得多在一個固定的實驗室管理。