使用嵌入式glib编译Mono项目

时间:2013-01-30 20:27:39

标签: mono

我有一个.NET应用程序,我想在运行Debian Linux(Power PC)的嵌入式处理器上运行。

嵌入式处理器上的这个限制版本的Linux没有安装GLIB。所以我想使用嵌入式GLIB(EGLIBC)编译单声道。

$ cd mono-2.8.2 
$ ./configure CFLAGS=-O2 --prefix=/usr/local --with-glib=embedded --enable-nls=no

Engine: 
   GC:       sgen and bundled Boehm GC with typed GC and parallel mark 
   GLIB:       embedded <----- Embedded Setting taken correctly 

$ make 
$ make install 

现在,Mono在我的Power PC计算机(安装了GLIB)上工作正常。然后我将单声道可执行文件(~8Megs)FTP到我的嵌入式设备,当我尝试执行单声道时出现以下错误:

dce> ./mono 
./mono: /lib/libpthread.so.0: version `GLIBC_2.3.3' not found (required by ./mono)
./mono: /lib/libpthread.so.0: version `GLIBC_2.6' not found (required by ./mono)
./mono: /lib/libpthread.so.0: version `GLIBC_2.3.4' not found (required by ./mono)
./mono: /lib/libc.so.6: version `GLIBC_2.4' not found (required by ./mono) 

我不明白为什么mono在编译时会问我关于GLIBC库的问题:“ - with-glib = embedded”。此外,在“make install”之后,我在安装的文件夹中找不到任何eglib库。

1 个答案:

答案 0 :(得分:1)

嵌入式glib与嵌入式glibc不同。它们是完全不同的库。

Mono的“eglib”(嵌入式glib)是一个最低级别GNOME库的子集的重新实现,它简化了C语言中的跨平台编程,并包含许多便利函数和数据类型(如哈希表等)

您可以在此处详细了解glib API:http://developer.gnome.org/glib/2.34/

eglibc是glibc的嵌入式版本,是Linux系统上的标准C库。