理论上讲,scivi依赖下面的包:
OpenKinect
OpenSceneGraph
ARToolKit
vcglib
其中vcglib在scivi的源代码包中已经提供。
有一些硬性依赖必须要首先解决,包括:
freeglut
libXmu
libXi
libusb
这些按照发行版软件包的基本安装方式进行安装即可。下面来看各个组件。
OpenKinect在各个发行版下的安装可以参考:
http://openkinect.org/wiki/Getting_Started
首先build OCG:
./configure
make
sudo make install
要注意的是,默认的安装位置是/usr/local/lib,如果你没有设定LD_LIBRARY_PATH的话,建议你安装到/usr/lib里面,这样需要修改configure为:
cmake . -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr $@
然后执行上面的命令即可。
ARToolKit依赖Video4Linux,需要安装libv4l,当然各个发行版都有。安装完之后需要执行:
sudo ln -s /usr/include/libv4l1-videodev.h /usr/include/linux/videodev.h
解决V4l的问题,需要在系统中安装一下。最后执行
./configure
make
即可。
上面的步骤执行完之后,scivi的基本依赖就解决了。安装后我的路径大致是这样设置的:
|-- ARToolKit
| |-- ARToolKit.xcodeproj
| |-- bin
| |-- doc
| |-- examples
| |-- include
| |-- lib
| |-- patterns
| `-- util
|-- OpenSceneGraph-3.0.1
| |-- CMakeFiles
| |-- CMakeModules
| |-- PlatformSpecifics
| |-- applications
| |-- bin
| |-- doc
| |-- examples
| |-- include
| |-- lib
| |-- packaging
| `-- src
`-- scivi
|-- Applications
|-- Data
|-- Interfaces
|-- Providers
`-- Utilities
最后我们来解决scivi的依赖:
#参见 http://vr.tu-freiberg.de/scivi/?page_id=25
cd Data/Libraries/
tar xvfz libPoisson.tar.gz
cd libPoisson/
make
cd ..
tar xvfz vcglib.tar.gz
这样基本的编译依赖就解决了。接下来就来编译scivi,首先重命名Personal.mk.example为Personal.mk,然后修改内容为:
#
# personal include directories
# example: -I/path/to/include
#
MY_INCLUDE_PATHS = -I Data/Libraries/libPoisson/include \
-I Data/Libraries/vcglib \
-I ../OpenSceneGraph-3.0.1/include \
-I ../ARToolKit/include
#
# personal library directories
# example: -L/path/to/lib
#
MY_LIBRARY_PATHS = -L Data/Libraries/libPoisson/lib \
-L ../ARToolKit/lib \
-L ../OpenSceneGraph-3.0.1/lib \
-L ../freenect/build/lib
其中INCLUDE就是头文件位置,LIBRARY PATH就是编译好的二进制的位置。这些根据你的目录位置来确定,如果目录树和我的一样,这样的配置文件就是有效的。
然后修改Makefile,加上额外的链接参数,Makefile的44行之后改为:
#
# libraries to use
#
LIBS = \
-losg \
-losgViewer \
-losgGA \
-losgDB \
-losgText \
-lfreenect \
-lAR \
-lPoisson \
-lpthread \
-lusb-1.0
然后执行
make
应该就没有问题了。理论上可能需要进行一些源代码的修改来适应新的gcc版本,不过修改幅度不大,根据gcc的提示修改即可。