经过一天的谷歌搜索和软件包安装,这是我解决 RCSS 安装问题的最后希望。首先让我解释一下我的软件包和版本,因为正如我之前搜索的那样,解决方案是完全基于版本的。
我在华硕笔记本电脑上安装了 ubuntu 14.04 x64 的新副本。安装突触包管理器后,我使用突触或apt-get
命令获得了列出的包的最新版本:
- libaudio开发*
- libpng-开发*
- 库西开发*
- libglib2.0-dev*
- libfontconfig-开发*
- libxrender-开发*
- 自由过剩3
- libltdl*
- libstdc++*
- libboost1.54-*
- libboost-正则表达式*
- libboost 文件系统*
- libboost线程*
- libboost 程序选项*
- libxaw7
- 柔性*
- 野牛*
- 海合会
- 克++
其中一些是在 RCSS 安装期间要求的,一些建议作为我在下面解释的错误的解决方案。请注意,我将 bison 软件包版本降级为 2.7.1 并保持它不会自动更新,正如其中一个论坛所建议的那样。最后是我的问题...我下载了 rcssbase-12.1.3、rcssserver-15.2.2 和 rcssmonitor-15.1.1 首先尝试安装 RCSS 服务器,因为它在手册和一些安装教程线程中提到。我在“cd”到包目录的终端中执行以下命令:
sudo chmod +x configure
sudo ./configure --with-boost-libdir=/usr/lib/x86_64-linux-gnu
一切顺利,没有出现错误,我得到以下报告:
config.status: creating Makefile
config.status: creating rcssbase/Makefile
config.status: creating rcssbase/net/Makefile
config.status: creating rcssbase/conf/Makefile
config.status: creating rcssbase/gzip/Makefile
config.status: creating src/Makefile
config.status: creating src/rcsoccersim
config.status: creating config.h
config.status: config.h is unchanged
config.status: executing depfiles commands
config.status: executing libtool commands
然后,当我尝试使用“sudo make”命令构建它时,出现以下错误:
coach_lang_parser.ypp:111:29: error: 'param' was not declared in this scope
#define BUILDER getBuilder( param )
^
coach_lang_parser.ypp:979:9: note: in expansion of macro 'BUILDER'
BUILDER.buildBallMoveToken( $1.getBMT() );
^
make[3]: *** [coach_lang_parser.lo] Error 1
make[3]: Leaving directory `/home/alireza/workspace/RCSS/rcssserver-15.2.2/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/alireza/workspace/RCSS/rcssserver-15.2.2/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/alireza/workspace/RCSS/rcssserver-15.2.2'
make: *** [all] Error 2
多行文件重复报告有关“参数”的错误,它填满了我的终端缓冲区。在这里,我仅复制有关“参数”的错误行之一。
经过一番谷歌搜索,建议将野牛库降级到 2.7.1 版,我这样做了,但没有用。然后我发现我必须在安装服务器之前安装RCSSbase。我可以在没有任何错误的情况下执行“./configure”,但再次在“make”过程中我得到以下包含错误的报告:
make all-recursive
make[1]: Entering directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3'
Making all in .
make[2]: Entering directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3'
make[2]: Leaving directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3'
Making all in libltdl
make[2]: Entering directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/libltdl'
make all-am
make[3]: Entering directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/libltdl'
/bin/bash ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I/usr/include -g -O2 -c -o ltdl.lo ltdl.c
gcc -DHAVE_CONFIG_H -I. -I/usr/include -g -O2 -c ltdl.c -fPIC -DPIC -o .libs/ltdl.o
gcc -DHAVE_CONFIG_H -I. -I/usr/include -g -O2 -c ltdl.c -o ltdl.o >/dev/null 2>&1
/bin/bash ./libtool --tag=CC --mode=link gcc -g -O2 -L/usr/lib/x86_64-linux-gnu -o libltdlc.la ltdl.lo -ldl
rm -fr .libs/libltdlc.a .libs/libltdlc.la
ar cru .libs/libltdlc.a .libs/ltdl.o
ranlib .libs/libltdlc.a
creating libltdlc.la
(cd .libs && rm -f libltdlc.la && ln -s ../libltdlc.la libltdlc.la)
make[3]: Leaving directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/libltdl'
make[2]: Leaving directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/libltdl'
Making all in rcssbase
make[2]: Entering directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/rcssbase'
Making all in error
make[3]: Entering directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/rcssbase/error'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/rcssbase/error'
Making all in lib
make[3]: Entering directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/rcssbase/lib'
Making all in .
make[4]: Entering directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/rcssbase/lib'
/bin/bash ../../libtool --tag=CXX --mode=compile g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../libltdl -I/usr/include -W -I./src -g -O2 -MT loader.lo -MD -MP -MF .deps/loader.Tpo -c -o loader.lo loader.cpp
g++ -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../../libltdl -I/usr/include -W -I./src -g -O2 -MT loader.lo -MD -MP -MF .deps/loader.Tpo -c loader.cpp -fPIC -DPIC -o .libs/loader.o
loader.cpp: In static member function ‘static boost::filesystem::path rcss::lib::Loader::stripDirName(const boost::filesystem::path&)’:
loader.cpp:158:38: error: conversion from ‘boost::filesystem::path’ to non-scalar type ‘std::string {aka std::basic_string<char>}’ requested
std::string rval = filename.leaf();
^
make[4]: *** [loader.lo] Error 1
make[4]: Leaving directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/rcssbase/lib'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/rcssbase/lib'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/alireza/workspace/RCSS/rcssbase-12.1.3/rcssbase'
我知道我的解释比平时更长,但我试图解释所有细节,以免得到与我之前测试过的相同的解决方案。如果有人能解决我的问题,我将不胜感激。我真的需要安装这个服务器。