我编译了for DirectFB的gtk+,放在/usr/gtkdfb目录,其lib目录有一个文件:
/usr/gtkdfb/lib/libgdk_pixbuf-2.0.so
在我的单机环境中也有一个文件:
/usr/lib/libgdk_pixbuf-2.0.so.0 -> libgdk_pixbuf-2.0.so.0.1000.6
我现在要打包的一个程序plugin-hello.so, 用objdump显示依赖的文件有:
NEEDED libgtk-directfb-2.0.so.0
NEEDED libgdk-directfb-2.0.so.0
NEEDED libatk-1.0.so.0
NEEDED libgdk_pixbuf-2.0.so.0 <----
NEEDED libm.so.6
NEEDED libpangocairo-1.0.so.0
NEEDED libpango-1.0.so.0
NEEDED libcairo.so.2
NEEDED libgobject-2.0.so.0
NEEDED libgmodule-2.0.so.0
NEEDED libdl.so.2
NEEDED libglib-2.0.so.0
NEEDED libc.so.6
然后我用dpkg
-S检查发现libgdk_pixbuf-2.0.so.0依赖了单机环境中的那个库,而我需要它连接的是/usr/gtkdfb/lib目录下的那个库。我怀疑是LD_LIBRARY_PATH的问题,但是我在终端export
LD_LIBRARY_PATH=/usr/gtkdfb/lib && export
PKG_CONFIG_PATH=$LD_LIBRARY_PATH/pkgconfig之后重新dpkg-buildpackage,创建得到的deb包的依赖关系仍然有问题。我不知道LD_LIBRARY_PATH在dpkg-buildpackage的过程中是否起作用,从结果来看,我想是没用的,但我又不知道怎样才能让dpkg-buildpackage连接上我需要的库。