对 libusb_get_parent() 的未定义引用 - 编译 freenect

Undefined reference to libusb_get_parent() - compiling freenect

我想安装一些库以便在 Raspberry 中连接 Kinect 360 link:http://www.kdab.com/setting-up-kinect-for-programming-in-linux-part-1/

首先,我在 Ubuntu 上进行了检查,一切正常。 但是,当我想构建 libfreenect(使用 make)时,会显示此错误:

../lib/libfreenect.so.0.5.2: undefined reference to 'lisusb_get_parent'
collect2: ld returned 1 exit status

我是 Raspberry 的新手,我不知道如何解决这个问题。

感谢任何帮助!! :)

谢谢!

我 运行 遇到了同样的问题,从 Raspbian 2015-02-16 的全新安装开始。显然(基于 this),您使用 apt-get 获得的 libusb 版本是旧的。根据 link 和其他地方的建议,我的解决方法是从更新的来源构建 libusb 并说服 libfreenect 使用它:

获取编译 libusb 和 libfreenect 所需的包:

sudo apt-get install git cmake build-essential
sudo apt-get install freeglut3-dev libxmu-dev libxi-dev
sudo apt-get install libudev-dev

删除现有的 libusb,如果它存在:

sudo apt-get remove libusb-1.0-0-dev

获取 libusb-1.0.18 的源代码:

wget http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.18/libusb-1.0.18.tar.bz2
tar -xvf libusb-1.0.18.tar.bz2

构建并安装更新的 libusb:

cd libusb-1.0.18/
./configure --prefix=/usr --disable-static
make
sudo make install

说服 libfreenect 使用新的 libusb 库的丑陋技巧:

sudo ln -s /usr/lib/libusb-1.0.so /usr/lib/arm-linux-gnueabihf/libusb-1.0.so

那么你应该能够构建 libfreenect。

sudo ln -s /usr/lib/libusb-1.0.so /usr/lib/x86_64-linux-gnu/libusb-1.0.so

当你使用 x86_64 机器时