好的,我在Linux库中添加了一些功能。

但是,即使在“安装”之后,我要确认功能的程序仍在链接到上一个版本。

因此,“ make install”将我的库放在这里:“/usr/local/lib”和“/usr/local/include”

我在配置上使用了以下内容:./configure -eenable-Maintainer-mode -eenable-uninstalled-build'cflags = -g -o0''cxxflags = -g -o0''jflags = -g -o0''fflags = -g -o0'cppflags =' - l/usr/locar/lib/lib/-i/usr/local/include/gpod-1.0/''

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

当我将生产的插件涂抹时:

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

clibhythmbox-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/local/include/gpod -1.0 -i/usr/include/glib -2.0 -i/usr/usr/lib/lib/lib/lib/lib -2.0/include -i/usr/usr/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 -lrt -lrt -lrt -lglib -2.0

因此,cppflags正在传递到插件,在.deps中,我看到了适当的标头文件...即:即:

〜/development/rhythmbox/plugins/ipod/.deps $更少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

有任何想法吗?

有帮助吗?

解决方案

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

其他提示

libgpod.so 指向库的旧版本。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top