gpt4 book ai didi

linux - 如何在 linux libgpod 和 rhythmbox 上强制链接

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:11:48 24 4
gpt4 key购买 nike

好的,我已经向 linux 库中添加了一些功能。

然而,即使在“安装”之后,我试图确认功能的程序仍链接到以前的版本。

所以“make install”将我的库放在这里:'/usr/local/lib'和'/usr/local/include'

我在配置中使用了以下内容:./configure --enable-maintainer-mode --enable-uninstalled-build 'CFLAGS=-g -O0' 'CXXFLAGS=-g -O0' 'JFLAGS=-g -O0' 'FFLAGS=-g -O0' CPPFLAGS ='-L/usr/local/lib/-I/usr/local/include/gpod-1.0/'

但是当我尝试执行程序时,我得到“找不到符号”和“无法加载插件”

当我 ldd 生成的插件时:~/Development/rhythmbox/plugins/ipod/.libs$ ldd libipod.so

linux-gate.so.1 => (0x00d97000)

librhythmbox-core.so.1 =>/home/gary/Development/rhythmbox/shell/.libs/librhythmbox core.so.1 (0x009ad000)

libgpod.so.4 =>/usr/lib/libgpod.so.4 (0x00509000)

强调重点是因为它显然链接到错误的库...当我查看 make 文件时,我看到以下内容:

IPOD_CFLAGS = -pthread -I/usr/local/include/gpod-1.0 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gdk- pixbuf-2.0 -I/usr/include/libpng12

IPOD_LIBS = -pthread -L/usr/local/lib -lgpod -lgdk_pixbuf-2.0 -lm -lgobject-2.0 -lgmodule-2.0 -lpng12 -lgthread-2.0 -lrt -lglib-2.0

所以 CPPFLAGS 被传递给插件,在 .deps 中我看到包含正确的头文件... IE:

~/Development/rhythmbox/plugins/ipod/.deps$ less rb-ipod-source.Po | grep gpod

/usr/local/include/gpod-1.0/gpod/itdb.h ../../lib/eel-gconf-extensions.h

/usr/local/include/gpod-1.0/gpod/itdb.h:

Ubuntu 10.10

有什么想法吗?

最佳答案

在运行configuremake 之前,您需要将LD_RUN_PATH 设置为/usr/local/lib。这会将 /usr/local/lib 作为共享库搜索路径嵌入到可执行文件中。

关于linux - 如何在 linux libgpod 和 rhythmbox 上强制链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4391649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com