LD_PRELOAD因Skype失败

我正在尝试在Ubuntu 13.04上运行Skype,并在我的网络摄像头与其他应用程序(如Cheese)一起使用时,获得黑色空白而不是我的网络摄像头输入。

传统的解决方案是运行

LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so /usr/bin/skype 

但是,这现在无法正常工作

 $ LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so /usr/bin/skype ERROR: ld.so: object '/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so' from LD_PRELOAD cannot be preloaded: ignored. $ locate v4l1compat.so /usr/lib/i386-linux-gnu/libv4l/v4l1compat.so /usr/lib/x86_64-linux-gnu/libv4l/v4l1compat.so file `which skype` /usr/bin/skype: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0xe7a4372f77f31bca55d7b0e26422b8901d916e51, stripped 

我也尝试过没有ld_preloading的东西。 LD_PRELOAD为什么会失败,还有其他人有运气吗?

使用以下命令启动Skype

 LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype 

如果这不起作用,请确保首先安装32位libv4l-0软件包。

您的Skype是32位版本,它需要32位libv4l-0软件包(即使您的ubuntu是64位)。 如果您没有它,请通过以下命令进行安装。

 sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libv4l-0:i386 

如果您不希望每次启动Skype时都键入此长命令,则应编辑/usr/share/applications/skype.desktop文件并在Exec行添加以下内容,使其如下所示:

 Exec=sh -c 'LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype' 

尝试:

 -c 'LD_PRELOAD=/usr/lib/i386-linux-gnu/libv4l/v4l1compat.so skype'