操作系统:Ubuntu14.04
开发板:Tegra K1(arm cortex A8)
如果已经有安装包文件OpenNI-Linux-Arm-2.2.tar.bz2的,请直接跳到解包安装步骤。
安装依赖
打开终端
sudo apt-get install -y g++ git pythonlibusb-1.0-0-dev libudev-dev freeglut3-dev doxygen graphviz openjdk-6-jdkgit-core
克隆源码
git clonehttps://github.com/occipital/OpenNI2.git
打开文件夹
cd OpenNI2/ThirdParty/PSCommon/BuildSystem/
修改Platform.Arm
gedit Platform.Arm
将CFLAGS += -march=armv7-a -mtune=cortex-a8-mfpu=neon -mfloat-abi=hard
删掉-mfloat-abi=hard此部分,保存退出。
添加线程库支持
gedit CommonCppMakefile
找到第97行,内容为:LDFLAGS +=-Wl,-rpath ./
第98行内容为OUTPUT_COMMAND= $(CXX) -o $(OUTPUT_FILE) $(OBJ_FILES) $(LDFLAGS)
在两行中间添加
ifneq (“$(OSTYPE)”,”Darwin”)
LDFLAGS += -lpthread
endif
保存退出
添加samples至编译工具链
返回OpenNI根目录
cd ../../../
修改makefile
gedit Makefile
在文件末尾添加
core_samples: $(CORE_SAMPLES)
开始编译
PLATFORM=Arm make
示例测试
打开程序所在文件夹
cd /Bin/Arm-Release
连接设备
开始测试
./SimpleRead
打包
返回OpenNI根目录
cd ../../
进入packaging目录
cd Packaging
创建再发行包
./ReleaseVersion.py Arm
然后在上一级的Final文件夹中可以找到包
cd ../Final
ls
可以看到OpenNI-Linux-Arm-2.2.tar.bz2
解包安装
tar xvf OpenNI-Linux-Arm-2.2.tar.bz2
cd OpenNI-Linux-Arm-2.2
sudo sh install.sh
复制lib和include至系统文件夹
cd ../../../
sudo cp -r Include /usr/include/openni2
sudo cp -r Bin/Arm-Release/OpenNI2/usr/lib/
sudo cp Bin/Arm-Release/libOpenNI2.*/usr/lib/
更新lib缓存
sudo ldconfig
添加用户进组
将下面命令中的ubuntu换为你的用户名
sudo usermod -a -G video Ubuntu
创建包配置文件
sudo gedit /usr/lib/pkgconfig/libopenni2.pc
添加内容
prefix=/usr
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/openni2
Name: OpenNI2
Description: A general purpose driver forall OpenNI cameras.
Version: 2.2.0.0
Cflags: -I${includedir}
Libs: -L${libdir} -lOpenNI2-L${libdir}/OpenNI2/Drivers -lDummyDevice -lOniFile -lPS1080.so
确定是否正确配置
pkg-config --modversion libopenni2
应该会返回2.2.0.0
至此,安装完毕。