GTK,如何让应用程序使用修改后的libgtk?

时间:2012-11-20 03:30:40

标签: gtk ld

/opt中,我解压缩了一个GTK tarball,以少量方式修改了几个.c文件,运行./configure(没有任何选项)和make(但不是安装),然后运行GTK的一个测试,以确认我的更改已实施。他们是。

我在libgtk中重命名了linux发行版的/usr来备份它。在它的位置,我创建了一个符号链接指向libgtk /opt中有我的mod。

我已经为2.0和3.0版本执行了此操作。

然而,例如Firefox,似乎仍在使用该发行版的默认库。

我错过了哪些步骤?

2 个答案:

答案 0 :(得分:0)

我想我已经解决了。我已经备份了原来的libgtk 点 - 附加到其名称。例如,

libgtk-x11-2.0.so.0.2400.10

重命名为

libgtk-x11-2.0.so.0.2400.10.original

现在,我已经将点更改为短划线:.original-original ...而且ldconfig现在似乎忽略了备份副本,这很好。

以下是ldconfig的强大功能:

lrwxrwxrwx  libgtk-3.so -> libgtk-3.so.0
lrwxrwxrwx  libgtk-3.so.0 -> libgtk-3.so.0.400.2.alt
lrwxrwxrwx  libgtk-3.so.0.400.2 -> libgtk-3.so.0.400.2.alt
-rw-r--r--  libgtk-3.so.0.400.2-original
lrwxrwxrwx  libgtk-3.so.0.400.2.alt -> /opt/gtk/gtk+-3.4.2/gtk/.libs/libgtk-3.so.0.400.2

lrwxrwxrwx  libgtk-x11-2.0.so -> libgtk-x11-2.0.so.0
lrwxrwxrwx  libgtk-x11-2.0.so.0 -> libgtk-x11-2.0.so.0.2400.10.alt
lrwxrwxrwx  libgtk-x11-2.0.so.0.2400.10 -> libgtk-x11-2.0.so.0.2400.10.alt
-rw-r--r--  libgtk-x11-2.0.so.0.2400.10-original
lrwxrwxrwx  libgtk-x11-2.0.so.0.2400.10.alt -> /opt/gtk/gtk+-2.24.10/gtk/.libs/libgtk-x11-2.0.so.0.2400.10

答案 1 :(得分:0)

我将添加关于运行ldconfig ergosys 评论,您可能想要做的是将路径添加到自定义版本库目录(类似于{{1在/opt/gtk-2.xx-customized/lib中使用正确的版本号}或/opt/gtk-3.xx-customized/lib。通过以root身份运行/etc/ld.so.conf,它应该更新链接器缓存。但是,定制版本的路径需要在系统之前指定。这样的变化是系统范围的,你不会搞乱你发行版创建的文件,这将取悦你的包管理器。原始版本和定制版本将位于不同的目录中,从而简化了维护工作。使用ldconfig选项,如下所示:--prefix指定构建软件的安装位置。请记住先前创建该目录,并为您的用户提供相应的写入权限。

请阅读./configure --prefix /opt/gtk-2.xx-customized了解详情。

如果您出于某种原因只想使用原始库集合运行一次应用程序,只需使用man ldconfig环境var指向要检查的所有其他目录之前的目录。 LD_LIBRARY_PATH,这次是原始图书馆所在的那个。语法为ld。不要忘记在64位系统上,库目录可以命名为lib64。