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

Tha*_*y07 4 makefile kinect

我想安装一些库,以便通过以下链接连接Raspberry中的Kinect 360: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
Run Code Online (Sandbox Code Playgroud)

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

任何帮助表示赞赏!! :)

谢谢!

小智 8

我遇到了同样的问题,从全新安装的Raspbian 2015-02-16开始.显然(基于),你用apt-get获得的libusb版本很旧.根据该链接和其他地方的建议,我的解决方法是从更新的源代码构建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
Run Code Online (Sandbox Code Playgroud)

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

sudo apt-get remove libusb-1.0-0-dev
Run Code Online (Sandbox Code Playgroud)

获取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
Run Code Online (Sandbox Code Playgroud)

构建并安装更新的libusb:

cd libusb-1.0.18/
./configure --prefix=/usr --disable-static
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

丑陋的黑客说服libfreenect使用新的libusb库:

sudo ln -s /usr/lib/libusb-1.0.so /usr/lib/arm-linux-gnueabihf/libusb-1.0.so
Run Code Online (Sandbox Code Playgroud)

然后你应该能够构建libfreenect.