成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

ubuntu如何編譯安裝mono環(huán)境

今天小編給大家分享一下ubuntu如何編譯安裝mono環(huán)境的相關(guān)知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

創(chuàng)新互聯(lián)"三網(wǎng)合一"的企業(yè)建站思路。企業(yè)可建設(shè)擁有電腦版、微信版、手機版的企業(yè)網(wǎng)站。實現(xiàn)跨屏營銷,產(chǎn)品發(fā)布一步更新,電腦網(wǎng)絡(luò)+移動網(wǎng)絡(luò)一網(wǎng)打盡,滿足企業(yè)的營銷需求!創(chuàng)新互聯(lián)具備承接各種類型的成都做網(wǎng)站、成都網(wǎng)站設(shè)計、成都外貿(mào)網(wǎng)站建設(shè)項目的能力。經(jīng)過10余年的努力的開拓,為不同行業(yè)的企事業(yè)單位提供了優(yōu)質(zhì)的服務(wù),并獲得了客戶的一致好評。

準備工作

先在vs2012上編譯一個winform,代碼如下:

using system;
using system.windows.forms;
namespace formstest
{
static class program
{
/// <summary>
/// 應(yīng)用程序的主入口點。
/// </summary>
[stathread]
static void main()
{
application.enablevisualstyles();
application.setcompatibletextrenderingdefault(false);
application.run(new form());
}
}
}

嘗試在ubuntu上用mono運行:

nike@nike-pc:~$ cd desktop/
nike@nike-pc:~/desktop$ ls
formstest.exe
nike@nike-pc:~/desktop$ mono formstest.exe
unhandled exception:
system.typeinitializationexception: an exception was thrown by the type initializer for system.windows.forms.xplatui ---> system.typeinitializationexception: an exception was thrown by the type initializer for system.drawing.gdiplus ---> system.dllnotfoundexception: /opt/mono-3.2.8/lib/libgdiplus.so
at (wrapper managed-to-native) system.drawing.gdiplus:gdiplusstartup (ulong&,system.drawing.gdiplusstartupinput&,system.drawing.gdiplusstartupoutput&)
at system.drawing.gdiplus..cctor () [0x00000] in <filename unknown>:0
--- end of inner exception stack trace ---
at system.drawing.graphics.fromhdcinternal (intptr hdc) [0x00000] in <filename unknown>:0
at system.windows.forms.xplatuix11.setdisplay (intptr display_handle) [0x00000] in <filename unknown>:0
at system.windows.forms.xplatuix11..ctor () [0x00000] in <filename unknown>:0
at system.windows.forms.xplatuix11.getinstance () [0x00000] in <filename unknown>:0
at system.windows.forms.xplatui..cctor () [0x00000] in <filename unknown>:0
--- end of inner exception stack trace ---
at system.windows.forms.application.enablevisualstyles () [0x00000] in <filename unknown>:0
at formstest.program.main () [0x00000] in <filename unknown>:0
[error] fatal unhandled exception: system.typeinitializationexception: an exception was thrown by the type initializer for system.windows.forms.xplatui ---> system.typeinitializationexception: an exception was thrown by the type initializer for system.drawing.gdiplus ---> system.dllnotfoundexception: /opt/mono-3.2.8/lib/libgdiplus.so
at (wrapper managed-to-native) system.drawing.gdiplus:gdiplusstartup (ulong&,system.drawing.gdiplusstartupinput&,system.drawing.gdiplusstartupoutput&)
at system.drawing.gdiplus..cctor () [0x00000] in <filename unknown>:0
--- end of inner exception stack trace ---
at system.drawing.graphics.fromhdcinternal (intptr hdc) [0x00000] in <filename unknown>:0
at system.windows.forms.xplatuix11.setdisplay (intptr display_handle) [0x00000] in <filename unknown>:0
at system.windows.forms.xplatuix11..ctor () [0x00000] in <filename unknown>:0
at system.windows.forms.xplatuix11.getinstance () [0x00000] in <filename unknown>:0
at system.windows.forms.xplatui..cctor () [0x00000] in <filename unknown>:0
--- end of inner exception stack trace ---
at system.windows.forms.application.enablevisualstyles () [0x00000] in <filename unknown>:0
at formstest.program.main () [0x00000] in <filename unknown>:0

遇到錯誤了system.dllnotfoundexception: /opt/mono-3.2.8/lib/libgdiplus.so,原因是如果要在ubuntu運行winform,那么必須要安裝libgdiplus。

下載libgdiplus并編譯

nike@nike-pc:~$ cd src
nike@nike-pc:~/src$ wget http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2
--2014-03-27 22:46:40-- http://download.mono-project.com/sources/libgdiplus/libgdiplus-2.10.9.tar.bz2
resolving download.mono-project.com (download.mono-project.com)... 54.230.157.116, 54.230.157.204, 54.230.158.216, ...
connecting to download.mono-project.com (download.mono-project.com)|54.230.157.116|:80... connected.
http request sent, awaiting response... 200 ok
length: 2074317 (2.0m) [application/x-bzip2]
saving to: ‘libgdiplus-2.10.9.tar.bz2'
 
100%[======================================>] 2,074,317 224kb/s in 9.5s
 
2014-03-27 22:46:54 (213 kb/s) - ‘libgdiplus-2.10.9.tar.bz2' saved [2074317/2074317]
 
nike@nike-pc:~/src$ ls
libgdiplus-2.10.9.tar.bz2 mono-3.2.8 mono-3.2.8.tar.bz2
nike@nike-pc:~/src$ tar -xvjf libgdiplus-2.10.9.tar.bz2
nike@nike-pc:~/src$ cd libgdiplus-2.10.9/
nike@nike-pc:~/src/libgdiplus-2.10.9$ ./configure --prefix=/opt/mono-3.2.8
==============>省略了很多<==============
checking pkg-config is at least version 0.9.0... yes
checking for base_dependencies... no
configure: error: package requirements (glib-2.0 >= 2.2.3) were not met:
no package 'glib-2.0' found
consider adjusting the pkg_config_path environment variable if you
installed software in a non-standard prefix.
 
alternatively, you may set the environment variables base_dependencies_cflags
and base_dependencies_libs to avoid the need to call pkg-config.
see the pkg-config man page for more details.

遇到錯誤了,需要安裝libglib2.0-dev:

nike@nike-pc:~/src/libgdiplus-2.10.9$ sudo apt-get install libglib2.0-dev
reading package lists... done
building dependency tree
reading state information... done
the following extra packages will be installed:
libglib2.0-0 libglib2.0-bin libpcre3-dev libpcrecpp0 zlib1g-dev
suggested packages:
libglib2.0-doc
the following new packages will be installed:
libglib2.0-dev libpcre3-dev libpcrecpp0 zlib1g-dev
the following packages will be upgraded:
libglib2.0-0 libglib2.0-bin
2 upgraded, 4 newly installed, 0 to remove and 273 not upgraded.
need to get 2,728 kb of archives.
after this operation, 9,208 kb of additional disk space will be used.
do you want to continue [y/n]?
==============>省略了很多<==============

重新初始化libgdiplus安裝配置文件:

nike@nike-pc:~/src/libgdiplus-2.10.9$ ./configure --prefix=/opt/mono-3.2.8
==============>省略了很多<==============
checking for libpng14... checking for libpng12... no
checking for png_read_info in -lpng... no
configure: error: *** libpng12 not found. see http://www.libpng.org/pub/png/libpng.html.

又遇到錯誤了,需要安裝libpng-dev:

nike@nike-pc:~/src/libgdiplus-2.10.9$ sudo apt-get install libpng-dev

重新初始化libgdiplus安裝配置文件:

nike@nike-pc:~/src/libgdiplus-2.10.9$ ./configure --prefix=/opt/mono-3.2.8
==============>省略了很多<==============
./configure: line 13371: test: too many arguments
configure: error: "failed to compile with x11/xlib.h include. you must fix your compiler paths"

提示錯誤,需要安裝libx11-dev:

nike@nike-pc:~/src/libgdiplus-2.10.9$ sudo apt-get install libx11-dev

重新初始化libgdiplus安裝配置文件:

nike@nike-pc:~/src/libgdiplus-2.10.9$ ./configure --prefix=/opt/mono-3.2.8
==============>省略了很多<==============
configure: error: cairo requires at least one font backend.
please install freetype and fontconfig, then try again:
http://freetype.org/ http://fontconfig.org/

configure: error: ./configure failed for cairo

需要安裝freetype和fontconfig:

nike@nike-pc:~/src/libgdiplus-2.10.9$ sudo apt-get install libfreetype6-dev
nike@nike-pc:~/src/libgdiplus-2.10.9$ sudo apt-get install fontconfig
nike@nike-pc:~/src/libgdiplus-2.10.9$ sudo apt-get install libfontconfig1-dev

重新初始化libgdiplus安裝配置文件:

nike@nike-pc:~/src/libgdiplus-2.10.9$ ./configure --prefix=/opt/mono-3.2.8
==============>省略了很多<==============
configuration summary
 
* installation prefix = /opt/mono-3.2.8
* cairo = 1.6.4 (internal)
* text = cairo
* exif tags = no. get it from http://libexif.sourceforge.net/
* codecs supported:
 
- tiff: no (get it from http://www.libtiff.org/)
- jpeg: no (get it from http://freshmeat.net/projects/libjpeg)
- gif: no (see http://sourceforge.net/projects/libgif)
- png: yes
 
note: if any of the above say 'no' you may install the
corresponding development packages for them, rerun
autogen.sh to include them in the build.

nike@nike-pc:

./configure通過。

編譯安裝源代碼

nike@nike-pc:~/src/libgdiplus-2.10.9$ make
make all-recursive
make[1]: entering directory `/home/nike/src/libgdiplus-2.10.9'
making all in pixman
make[2]: entering directory `/home/nike/src/libgdiplus-2.10.9/pixman'
make all-recursive
make[3]: entering directory `/home/nike/src/libgdiplus-2.10.9/pixman'
making all in pixman
make[4]: entering directory `/home/nike/src/libgdiplus-2.10.9/pixman/pixman'
/bin/bash ../libtool --tag=cc --mode=compile gcc -dhave_config_h -i. -i.. -g -o2 -wall -fvisibility=hidden -mt pixman-access.lo -md -mp -mf .deps/pixman-access.tpo -c -o pixman-access.lo pixman-access.c
../libtool: line 852: x--tag=cc: command not found

遇到錯誤了,通過google搜索,可能是因為在項目目錄下生成的libtool腳本中定義了$echo變量,但是在腳本文件ltmain.sh中,使用的卻是$echo(生成的libtool版本太舊) 解決方法很簡單export echo=echo即可:

nike@nike-pc:~/src/libgdiplus-2.10.9$ export echo=echo
nike@nike-pc:~/src/libgdiplus-2.10.9$ make
==============>省略了很多<==============
make[2]: entering directory `/home/nike/src/libgdiplus-2.10.9/tests'
/bin/bash ../libtool --tag=cc --mode=link gcc -g -o2 -pthread -o testgdi testgdi.o ../src/libgdiplus.la -lpthread -lfontconfig
libtool: link: gcc -g -o2 -pthread -o .libs/testgdi testgdi.o ../src/.libs/libgdiplus.so -lpthread -lfontconfig -pthread -wl,-rpath -wl,/opt/mono-3.2.8/lib
/usr/bin/ld: testgdi.o: undefined reference to symbol 'g_print'
/lib/i386-linux-gnu/libglib-2.0.so.0: error adding symbols: dso missing from command line
collect2: error: ld returned 1 exit status
make[2]: *** [testgdi] error 1
make[2]: leaving directory `/home/nike/src/libgdiplus-2.10.9/tests'
make[1]: *** [all-recursive] error 1
make[1]: leaving directory `/home/nike/src/libgdiplus-2.10.9'
make: *** [all] error 2

編譯時又出錯了,解決辦法為: 1.運行./configure后,編輯tests/makefile文件 2.在makefile文件130行位置,將libs = -lpthread -lfontconfig改為libs = -lpthread -lfontconfig -lglib-2.0 -lx11 3.再次運行make即可

nike@nike-pc:~/src/libgdiplus-2.10.9$ vim tests/makefile
nike@nike-pc:~/src/libgdiplus-2.10.9$ make
==============>編譯很快<==============
nike@nike-pc:~/src/libgdiplus-2.10.9$ sudo make install
==============>省略了很多<==============

安裝完成。

設(shè)置path環(huán)境變量

nike@nike-pc:~/src/mono-3.2.8$ cd ~
nike@nike-pc:~$ vim .bashrc

在該文件末尾追加以下語句: export ld_library_path=/opt/mono-3.2.8/lib 然后:

nike@nike-pc:~$ . .bashrc
nike@nike-pc:~$ echo $ld_library_path
/opt/mono-3.2.8/lib
nike@nike-pc:~$

驗證libgdiplus是否安裝成功

nike@nike-pc:~$ cd desktop/
nike@nike-pc:~/desktop$ mono formstest.exe

運行成功。

以上就是“ubuntu如何編譯安裝mono環(huán)境”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

新聞標(biāo)題:ubuntu如何編譯安裝mono環(huán)境
當(dāng)前地址:http://jinyejixie.com/article38/ppeppp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)動態(tài)網(wǎng)站、全網(wǎng)營銷推廣App設(shè)計、網(wǎng)站維護、做網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站制作
永登县| 汉源县| 凤城市| 三穗县| 邵阳市| 襄汾县| 丽水市| 高唐县| 叙永县| 高唐县| 黔江区| 莱阳市| 梧州市| 保山市| 凌云县| 咸丰县| 多伦县| 玛曲县| 潮州市| 芷江| 长兴县| 耿马| 东山县| 尼勒克县| 罗甸县| 临城县| 朝阳区| 嵊州市| 文山县| 英超| 新乡县| 清远市| 麻栗坡县| 西藏| 泸水县| 车致| 土默特左旗| 商南县| 承德县| 江城| 高台县|