全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3403
推到 Plurk!
推到 Facebook!

開始Mono之旅-Mono安裝指南 Linux to ,net

 
conundrum
尊榮會員


發表:893
回覆:1272
積分:643
註冊:2004-01-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-06 11:45:07 IP:61.221.xxx.xxx 未訂閱
開始Mono之旅-Mono安裝指南 http://nluyan.vicp.net/showdetails.aspx?postid=190 獲取 Mono 目前可以通過以下四種途徑獲取 Mono 套裝軟體 。 • 到 Mono 的官方網站下載發行版安裝包: 這裏提供了各種不同種類的正式發行版或階段性發行版,人們可以自由選擇所需要的類型。這裏所提供的安裝包一般都經過了測試,能正確的編譯和運行。 下載地址在: http://www.go-mono.com/download.html • 日發行包: 假如你希望能密切的跟蹤 Mono 的開發進展,或者你想看到 Mono 的開發歷史腳步,你可以在 http://go-mono.com/daily/ 這個位址獲取 Mono 的日發行包。日發行包包括了每一天 Mono 項目的開發進展。共分為以下 3 種不同的類型: • Mono: 這是一個可以進行編譯的運行時和類庫的源代碼包(包含了 C# 的所有二進位控制項)。 只要你有一個 C 編譯器就可以編譯和安裝使用了。最新的版本可以直接通過 http://go-mono.com/daily/mono-latest.tar.gz 來下載。 • MonoCharge: 包含了所有進行編譯過的 Mono 的 C# 元件和可執行程式。可以使用它來全面更新你已安裝的 Mono 類庫和工具。 最新版本可以直接通過 http://go-mono.com/daily/monocharge-latest.tar.gz 來下載。 • MonoLite: MonoLite 包和 MonoCharge 包一樣,也提供了讓你更新 Mono 的能力,不過它只包含了最基本的核心類庫 corlib, System, System.Xml 和 C# 編譯器。 最新版本可以直接通過 http://go-mono.com/daily/monolite-latest.tar.gz 來下載。 • 通過 CVS 伺服器獲取 Mono 源碼 . CVS 是一個功能強大的源代碼管理伺服器。假如你認為每天更新一次的日發行包還是不能滿足你狂熱的追求最新代碼的需求的話,那麼還可以通過訪問 Mono 的 CVS 伺服器直接獲取 Mono 正在開發中的源代碼庫,因為有可能你得到的代碼是一分鐘前由 Mono 的開發人員剛剛提交上去的。 在 Linux 下訪問: 首先要確認你的系統上已經安裝了 CVS 用戶端軟體,如果沒有的話,可以到 http://www.cvshome.org/ 去下載。 在控制臺下輸入如下命令: export CVSROOT=:pserver:anonymous@anoncvs.go-mono.com:/mono cvs login (系統提示要輸入密碼,可以直接回車) cvs -z3 co mono 其中的 mono 為專案名稱,也可以換成別的項目,例如 mcs 和 gtk-sharp 。然後就可以看到正在從伺服器上下載檔, CVS 會自動在當前目錄下建立一個和伺服器上的目錄結構保持一致的專案檔目錄。 • CVS 快照 Available for curious developers which do not necessarily want to install the CVS source. Baked daily. Linux上安裝 Mono 的分發包有兩種形式,一種是源碼包,需要手工進行編譯,另一種是二進位包,可以直接安裝。 源碼包的適用範圍比較廣,能夠適合幾乎所有的 Linux ,但是步驟比較麻煩,所需時間較長。相反,二進位包的安裝比較簡單,但是適用範圍比較窄,只能在某些特定的 Linux 系統下安裝,典型的有 RedHat Linux 的 RPM 安裝包。 核心的 Mono 分成了兩部分: • C 組成部分(包含在 Mono 套裝軟體中) 包含了運行 Mono 的所有必要成分,是 Mono 的運行環境。 • C# 組成部分(包含在 MCS 套裝軟體中) 包含了類庫,編譯器等使用 C# 編寫的內容部分。 源代碼安裝: 源代碼安裝是指下載 Mono 的源代碼,然後在本地進行編譯, 假如你是下載的 Mono 的壓縮安裝包,可以輸入以下命令進行解壓縮: tar zxfv mono-X.XX.tar.gz 其中 X.XX 是 Mono 的版本號。 解壓縮完成後,將會看到在當前目錄下的一個子目錄,名稱一般會是: mono-X.XX 。 進入該子目錄,輸入: ./configure 你將看到類似如下的狀態資訊: [root@localhost mono-1.0]# ./configure checking build system type... i686-pc-linux-gnu checking host system type... i686-pc-linux-gnu checking target system type... i686-pc-linux-gnu checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether to enable maintainer-specific portions of Makefiles... no checking host platform characteristics... ok checking for gcc... gcc checking for gcc... (cached) gcc checking for C compiler default output... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o 中間略過 … config.status: creating Makefile config.status: creating include/Makefile config.status: creating include/private/Makefile config.status: creating doc/Makefile config.status: executing depfiles commands config.status: executing default commands GC: included ICU: no, if you want full i18n support download it from: http://oss.software.ibm.com/icu/index.html NPTL: yes SIGALTSTACK: yes Engine: Building and using the JIT 這表示 configure 程式正在配置 Mono 的 Makefile 檔,為下一步編譯 Mono 做好準備。假如在此過程中出現了異常中斷,並且目錄中也沒有生成 Makefile 檔,則需要根據系統提示找出出現錯誤的原因,一般可能是因為缺少某些編譯 Mono 所必須的軟體,例如假設你沒有安裝 Gnome X-Window 的話,則需要手動安裝 pkg-config 和 glib-2.0 ,這兩個軟體可以分別在 http://www.freedesktop.org/Software/pkgconfig 和 ftp://ftp.gtk.org 處下載。 接下來就可以開始編譯 Mono 了,直接在命令行輸入 make ,你可以看到類似如下的輸出資訊: [root@localhost mono-1.0]# make make all-recursive make[1]: Entering directory `/mono/mono-1.0' Making all in libgc make[2]: Entering directory `/mono/mono-1.0/libgc' Making all in include make[3]: Entering directory `/mono/mono-1.0/libgc/include' gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../libgc/include -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -pthread -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -DGC_LINUX_THREADS -DMONO_USE_EXC_TABLES -D_GNU_SOURCE -D_REENTRANT -fexceptions -D_FILE_OFFSET_BITS=64 -g -O2 -fno-strict-aliasing -g -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wno-cast-qual -Wcast-align -Wwrite-strings -c -o genmdesc-helpers.o `test -f 'helpers.c' || echo './'`helpers.c /bin/sh ../../libtool --mode=link gcc -g -O2 -fno-strict-aliasing -g -Wall -Wunused ./genmdesc ./cpu-sparc.md cpu-sparc.h sparc_desc make all-am 其中的由配置腳本生成的編譯資訊可能看起來會非常雜亂,不過不用擔心,這些都是很正常的現象。另外在編譯過程中,依賴不同性能的機器,可能需要的的時間會比較長,請耐心等待。 在編譯完成之後,可以輸入 make install 來進行安裝,這個步驟會將 mono 的一些腳本和可執行程式複製到作業系統可以找得到的地方,默認情況是: /usr/local/bin 。 現在,你可以在命令行輸入: mono ,假如出現了以下幫助資訊(其具體含義在後面章節有詳細介紹): Usage is: mono [options] assembly Runtime and JIT debugging: --compile METHOD Just compile METHOD in assembly --ncompile N Number of times to compile METHOD (default: 1) --regression Runs the regression test contained in the assembly --print-vtable Print the vtable of all used classes --trace[=EXPR] Enable tracing, use --help-trace for details --compile-all Compiles all the methods in the assembly --breakonex Inserts a breakpoint on exceptions --break METHOD Inserts a breakpoint at METHOD entry --debug Enable debugging support --stats Print statistics about the JIT operations Development: --statfile FILE Sets the stat file to FILE --aot Compiles the assembly to native code --profile[=profiler] Runs in profiling mode with the specified profiler module --graph[=TYPE] METHOD Draws a graph of the specified method: cfg Control Flow Graph (CFG) dtree Dominator Tree code CFG showing code ssa CFG showing code after SSA translation optcode CFG showing code after IR optimizations Runtime: --config FILE Loads FILE as the Mono config --verbose, -v Increases the verbosity level --help, -h Show usage information --version, -V Show version information --optimize=OPT Turns on a specific optimization: peephole Peephole postpass branch Branch optimizations inline Inline method calls cfold Constant folding consprop Constant propagation copyprop Copy propagation deadce Dead code elimination linears Linear scan global reg allocation cmov Conditional moves shared Emit per-domain code sched Instruction scheduling intrins Intrinsic method implementations tailc Tail recursion and tail calls loop Loop related optimizations fcmov Fast x86 FP compares leaf Leaf procedures optimizations aot Usage of Ahead Of Time compiled code precomp Precompile all methods before executing Main 那麼恭喜,你已經正確的安裝完成了 Mono 運行環境,可以在 Linux 下運行和編譯 .Net 應用程式了。 卸載 Mono 也很簡單,只要輸入 make uninstall ,就會自動的刪除所有安裝的可執行程式和腳本。如果你希望重新編譯安裝 Mono ,則可以先輸入: make distclean ,然後按照剛才的順序輸入: ./configure , make , make install 。 Windows上安裝 Mono 本身是一個跨平臺的環境,因此它完全可以在 Windows 平臺下運行,也許你會發出這樣的疑問:既然 Windows 平臺上已經有了 Microsoft .Net Framework ,那麼為什麼我還要在 Windows 下安裝 Mono 呢? 這是因為: 1 .雖然 Mono 和 Microsfot .Net 能在大部分的情況下保持相容,但是 Mono 還有它自己的擴展部分,例如數量遠遠超過 Microsoft .Net 的資料庫提供程式。 2 .方便調試。大部分的程式師還是習慣在 Windows 上進行軟體發展,畢竟 Windows 的開發環境比 Linux 要好得多。比如可以在 Windows 下使用 Visual Studio 進行開發,然後直接調試對 Mono 的相容性問題,而不用再切換到 Linux 下。 3 .可以查看 .Net 的類庫源代碼。 Mono 是開源項目,意味著你可以查看到類庫的 C# 源代碼,而 Microsoft .Net 就不能夠看到。對於開發人員理解 .Net 類庫的設計和實現是非常有幫助的。 首先需要到 Mono 的下載頁面去下載 Windows 安裝套裝軟體,它其實是一個自解壓的壓縮包,因此不會在開始功能表程式欄中生成任何的快捷方式,實際上, Mono 自身還沒有任何的圖形介面,目前你只能在控制臺中才能正確使用 Mono 。 目前這個 版本的 Mono 還不是很完善,在安裝完成後,如果你直接進入目錄下輸入 mono 會產生一些找不到動態連接庫的錯誤,所以還需要手動添加動態連接庫的路徑到 path 環境變數中,使用如下命令: Path=%path%;c:\programe files\mono-1.0\bin;c:\programe files\mono-1.0\icu\bin 然後再到 bin 目錄下執行 mono ,便可以看見正確的幫助提示資訊。 盧彥 2004-7-4
系統時間:2024-05-16 7:11:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!