准备工作
一个全新安装的ubuntu13.10系统
下载Mono源代码并编译
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
nike@NIKE-PC:~$ ls
Desktop Downloads Music Public Videos
Documents examples.desktop Pictures Templates
nike@NIKE-PC:~$ mkdir src
nike@NIKE-PC:~$ cd src
nike@NIKE-PC:~ /src $ wget http: //download .mono-project.com /sources/mono/mono-3 .2.8. tar .bz2
--2014-03-27 21:24:30-- http: //download .mono-project.com /sources/mono/mono-3 .2.8. tar .bz2
Resolving download.mono-project.com (download.mono-project.com)... 54.240.168.102, 54.230.156.158, 54.230.157.116, ...
Connecting to download.mono-project.com (download.mono-project.com)|54.240.168.102|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 77515552 (74M) [application /x-bzip2 ]
Saving to: ‘mono-3.2.8. tar .bz2'
100%[======================================>] 77,515,552 189K /s in 10m 50s
nike@NIKE-PC:~ /src $ ls
mono-3.2.8. tar .bz2
nike@NIKE-PC:~ /src $ tar -xjf mono-3.2.8. tar .bz2
nike@NIKE-PC:~ /src $ cd mono-3.2.8/
nike@NIKE-PC:~ /src/mono-3 .2.8$ . /configure --prefix= /opt/mono-3 .2.8
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 a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk ... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking how to create a ustar tar archive... gnutar
checking whether to enable maintainer-specific portions of Makefiles... no
checking whether ln -s works... yes
checking whether make supports nested variables... yes
checking host platform characteristics... ok
checking for gcc... gcc
checking for gcc... (cached) gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make ... GNU
checking dependency style of gcc... gcc3
checking for g++... no
checking whether we are using the GNU C++ compiler... no
checking whether g++ accepts -g... no
checking dependency style of g++... none
checking dependency style of gcc... gcc3
checking for gawk ... (cached) mawk
checking whether gcc and cc understand -c and -o together... yes
configure: error: You need to install g++
|
因为没有安装g++而无法继续:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
nike@NIKE-PC:~ /src/mono-3 .2.8$ sudo apt-get install g++
[ sudo ] password for nike:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
cpp-4.8 g++-4.8 gcc-4.8 gcc-4.8-base libasan0 libatomic1 libgcc-4.8-dev
libgcc1 libgomp1 libitm1 libquadmath0 libstdc++-4.8-dev libstdc++6
Suggested packages:
gcc-4.8-locales g++-multilib g++-4.8-multilib gcc-4.8-doc libstdc++6-4.8-dbg
gcc-4.8-multilib libmudflap0-4.8-dev libgcc1-dbg libgomp1-dbg libitm1-dbg
libatomic1-dbg libasan0-dbg libtsan0-dbg libbacktrace1-dbg libquadmath0-dbg
libmudflap0-dbg libstdc++-4.8-doc
The following NEW packages will be installed:
g++ g++-4.8 libstdc++-4.8-dev
The following packages will be upgraded:
cpp-4.8 gcc-4.8 gcc-4.8-base libasan0 libatomic1 libgcc-4.8-dev libgcc1
libgomp1 libitm1 libquadmath0 libstdc++6
11 upgraded, 3 newly installed, 0 to remove and 275 not upgraded.
Need to get 25.9 MB of archives.
After this operation, 28.2 MB of additional disk space will be used.
Do you want to continue [Y /n ]?
==============>省略了很多<==============
|
重新初始化mono安装配置文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
nike@NIKE-PC:~ /src/mono-3 .2.8$ . /configure --prefix= /opt/mono-3 .2.8
==============>省略了很多<==============
Engine:
GC: sgen and bundled Boehm GC with typed GC and parallel mark
TLS: __thread
SIGALTSTACK: yes
Engine: Building and using the JIT
oprofile: no
BigArrays: no
DTrace: no
LLVM Back End: no (dynamically loaded: no)
Libraries:
.NET 2.0 /3 .5: yes
.NET 4.0: yes
.NET 4.5: yes
MonoDroid: no
MonoTouch: no
JNI support: IKVM Native
libgdiplus: assumed to be installed
zlib:
nike@NIKE-PC:~ /src/mono-3 .2.8$
|
./configure通过。
编译Mono源代码
1
2
3
4
|
nike@NIKE-PC:~ /src/mono-3 .2.8$ make
==============>漫长的编译~<==============
nike@NIKE-PC:~ /src/mono-3 .2.8$ sudo make install
==============>省略了很多<==============
|
安装成功。
设置PATH环境变量
1
2
|
nike@NIKE-PC:~ /src/mono-3 .2.8$ cd ~
nike@NIKE-PC:~$ vim .bashrc
|
在该文件末尾追加以下语句:
1
2
3
|
if [ -d /opt/mono-3 .2.8 /bin ]; then
export PATH= /opt/mono-3 .2.8 /bin :$PATH
fi
|
然后:
1
2
3
4
|
nike@NIKE-PC:~$ . .bashrc
nike@NIKE-PC:~$ echo $PATH
/opt/mono-3 .2.8 /bin : /usr/lib/lightdm/lightdm : /usr/local/sbin : /usr/local/bin : /usr/sbin : /usr/bin : /sbin : /bin : /usr/games : /usr/local/games
nike@NIKE-PC:~$
|
验证Mono是否安装正确
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
nike@NIKE-PC:~$ mono --version
Mono JIT compiler version 3.2.8 (tarball 2014年 03月 27日 星期四 21:55:30 CST)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
TLS: __thread
SIGSEGV: altstack
Notifications: epoll
Architecture: x86
Disabled: none
Misc: softdebug
LLVM: supported, not enabled.
GC: sgen
nike@NIKE-PC:~$ dmcs --version
Mono C # compiler version 3.2.8.0
nike@NIKE-PC:~$
|
安装成功。