gnome 2.28 编译过程中一些问题的解决

对这段时间解决的棘手问题做一次总结,以备日后参考:

 

首先是xulrunner编译出错:

../../staticlib/components/libpipnss.a(nsNSSCallbacks.o):在函数‘UnregisterMyOCSPAIAInfoCallback()’中:

nsNSSCallbacks.cpp:(.text+0x266):对‘CERT_RegisterAlternateOCSPAIAInfoCallBack’未定义的引用

../../staticlib/components/libpipnss.a(nsNSSCallbacks.o):在函数‘RegisterMyOCSPAIAInfoCallback()’中:

nsNSSCallbacks.cpp:(.text+0x33e):对‘CERT_RegisterAlternateOCSPAIAInfoCallBack’未定义的引用

 

我在这个问题上纠结了很久。听说不能用系统的nss库,但我把configure选项中的--with-system-nss去掉还是不行。。 后来经过研究,发现缺失的函数的确在mozilla的nss库里面(诡异),最后把 security/nss/lib/nss/Linux2.6_x86_glibc_PTH_OPT.OBJ/libnss3.so 复制到 /opt/gnome2/lib/libnss3_mozilla.so,然后修改 config/autoconf.mk, 把 -lnss3 改为 -lnss3_mozilla,终于可以了。

 

另外,编译某个东西的时候(记不清具体是哪个了),提示找不到 Gtk-2.0.gir,Google了一会儿,据说要安装 gir-repository, 但编译 gir-repository 的时候,出现了类似如下的错误信息:

libgio-2.0.so: undefined reference to `g_hostname_to_ascii'

我最初以为glib有问题,重新编译了glib一下依然如故,最终发现原因是vte还用的是旧的glib。编译选项里面又没有--disable-vte之类的,最后用了一个猥琐的方法:configure时把/usr/lib/pkgconfig/vte.pc 重命名为 vte.pc1,configure完后再还原……

 

 

编译某个东西时,报错:

Requested 'gnome-keyring-1 >= 2.22' but version of gnome-keyring is 0.8.1

下了一个最新的gnome-keyring-2.29.90,还是不行。。 无助之际,按照http://www.linuxfromscratch.org/blfs/view/svn/gnome/gnome-keyring.html上的方法安装gnome-keyring-2.28.,就ok了,诡异……

 

编译gnome-disk-utility时,依赖DeviceKit-disks 007,为了编译DeviceKit-disks 007,又弄出了一大堆依赖,最后编译到udev_147~-6时,发现缺少sys/signalfd.h。用某种方法强行解决后,最终出现signalfd函数未定义。。没办法了,系统底层库的问题,我不想再弄了,直接跳过gnome-disk-utility。。 目前还没出现不良后果。

 

先暂时总结到这儿吧,目前编译到了mono

你可能感兴趣的:(Google,reference,mozilla,X86)