Ubuntu16.04安装Mitsuba0.6
按照文档上的进行安装依赖:
sudo apt-get install build-essential scons mercurial libpng12-dev libjpeg-dev libilmbase-dev libxerces-c-dev libboost-all-dev libopenexr-dev libglewmx-dev libxxf86vm-dev libpcrecpp0 libeigen3-dev libfftw3-dev
其中 libpcrecpp0 可能已经过时,ubuntu16上已经有一个包。qt4-dev-tools不用安装
问题1:
Package QtWidgets was not found in the pkg-config search path
我一开始用Anaconda中提供的Qt5来,但是不行,编译版本可能和mitsuba编译版本不一致
export PKG_CONFIG_PATH=/home/xkl/anaconda3/lib/pkgconfig:$PKG_CONFIG_PATH
我选择不编译mtsgui,将SConstruct里面相关语句注释掉。
# Build the Qt-based GUI binaries
# build('src/mtsgui/SConscript', ['mainEnv', 'converter_objects'], duplicate=True)
把build目录下SConscript.install中,hasQt的相关内容也注释掉
# if hasQt:
# install(distDir, ['mtsgui/mtsgui'])
问题2:
/usr/bin/ld: cannot find -lGL
执行sudo apt-get install libgl-dev发现提示:选中 'libgl1-mesa-dev' 而非 'libgl-dev'
进入/usr/lib目录,执行:
sudo ln -s /usr/lib/x86_64-linux-gnu/libGL.so.1 ./libGL.so
问题3:
/usr/bin/ld: cannot find -lcollada-dom2.4-dp
sudo apt-get install libcollada-dom2.4-dp-dev
可以解决问题。
问题4:在src/shapes/ply/ply_parser.hpp文件中有代码编译不过去
在config.py中CXXFLAGS里加上: '-std=c++11'
编译成功之后,如果在dist中直接运行mitsuba,会报告找不到libmitsuba-core.so
原因是没有设置LD_LIBRARY_PATH,需要把mitsuba编译好的库所在路径配置一下。