1、下载Vizdoom源文件
wget https://github.com/mwydmuch/ViZDoom
2、自动安装依赖
scripts/linux_check_dependencies.sh
特别注意julia
julia> using Pkg
julia> Pkg.add("CxxWrap")
报错!
重新源码安装julia 1.0.0版本:
sudo wget https://julialang-s3.julialang.org/bin/linux/x64/1.0/julia-1.0.0-linux-x86_64.tar.gz
tar -zxvf julia-1.0.0-linux-x86_64.tar.gz
sudo vim /etc/profile末尾添加
export JULIA_PATH=/home/cloudlab/julia-1.0.0/bin
export PATH=$JULIA_PATH/:$PATH
source /etc/profile
重新执行julia
julia> using Pkg
julia> Pkg.add("CxxWrap")
等待......完成
github上说boost libraries 1.54+,但在我的机器上编译Vizdoom的时候报错,boost::placeholders不存在,开始源码安装boost
https://sourceforge.net/projects/boost/files/boost/
下载指定版本的boost,在src中查找boost::placeholders的定义,发现1.60.0版本以下的boost并没有定义。我下载了boost 1.60.0并安装。
安装之前先卸载老版本boost,如果是源文件安装,删除/usr/local/include和/usr/local/lib与boost相关的文件,总之要卸载干净。
安装1.60.0 boost
sudo apt-get update
sudo apt-get install build-essential g++ python-dev autotools-dev libicu-dev libbz2-dev
./bootstrap.sh --prefix=/usr/local
user_configFile=`find $PWD -name user-config.jam`
echo "using mpi ;" >> $user_configFile
n=`cat /proc/cpuinfo | grep "cpu cores" | uniq | awk '{print $NF}'`
sudo ./b2 --with=all -j $n install
sudo sh -c 'echo "/usr/local/lib" >> /etc/ld.so.conf.d/local.conf'
sudo ldconfig
我这里cmake Vizdoom有一个问题,cmake的问题,将cmake卸载重装,删除/usr/local/include下的cmake文件夹。pip install cmake即可。
3、下载freedoom并解压到vizdoom/scripts目录下
4、编译Vizdoom
./cmake_clean.sh
./cmake_all.sh
make -j32
pip install .
5、运行Vizdoom
cd examples/python
python basic.py (有bug,添加一行game.add_game_args("+vid_forcesurface 1") )