Note
此处的文档可能已过时,涉及的是旧版本的库!
本文档包含安装工具和库的两种基本方式的说明。
- 要么手动为当前用户安装(无需 root 权限)
- 要么让您的发行版进行系统级安装(需要 root 权限)
您可以选择其中任意一种方式。
手动安装#
本文档描述了如何在 Linux 下从头构建并安装 SUMO 依赖的(更高级的)库。无需软件包管理(如 RPM 等)或 root 访问权限。您只需要一个可用的 GCC(3.3 及以上版本应足够)以及 Fox 可能依赖的一些基本库。
该方法已在多个 SuSE Linux 安装以及最近的 cygwin 上成功测试。关于 cygwin 上需要额外处理的所有事项,请参见 cygwin 部分。
- 首先检查您的 Linux 发行版是否自带 Xerces-C 软件包,并安装它以及头文件(对于 SuSE 用户,这是 -devel 软包)。已知 3.1 版本与当前的仓库版本兼容。您还应检查 Proj、GDAL 和 Fox 是否已随您的发行版提供,如果提供,请安装它们以及头文件(devel 软件包)。以此方式安装的每个软件包,您都无需自行构建。
- 其次下载 Proj、GDAL、Fox(如果您需要 GUI)和 Xerces-C(如果您的发行版未自带)的源代码。
- 如果您正在构建新检出的仓库版本,且不需要精确的地理坐标,则可以省略 Proj 和 GDAL。
工具#
我们使用 GNU autotools 为类 Unix 环境生成配置和 Makefile。文档可以在以下位置找到:
库#
- 构建并安装库(如果您没有 root 访问权限,请为库和头文件选择不同的目标路径,例如 $HOME)。对于 GDAL、Fox 和 Proj,这或多或少是直接的:
tar xzf fox-1.6.36.tar.gz
cd fox-1.6.36
./configure --prefix=$HOME && make install
cd ..
tar xzf gdal-1.5.1.tar.gz
cd gdal-1.5.1
./configure --prefix=$HOME && make install
cd ..
tar xzf proj-4.6.0.tar.gz
cd proj-4.6.0
./configure --prefix=$HOME && make install
- 注意:GDAL 的 "make install" 可能会因为 Python 绑定而失败,因为它试图安装到某个只有 root 可写的目录。您可以安全地忽略此错误。
- 强烈建议使用用户可写的安装目录,并执行 "make install",而不是在以后构建 SUMO 时尝试在 GDAL、Proj 和 Fox 的目录树内指定目录。
- 注意:某些 Fox 发行版似乎是在禁用 openGL 支持的情况下构建的。如果您在编译 sumo-gui 期间遇到诸如 "glColor..."、"glVertex3f..." 等方法的未解析引用,您必须在编译 FOX 库之前使用 "./configure --with-opengl=yes --prefix=$HOME && make install" 启用 openGL 支持;不过,这通常是默认设置。
- 与其他库相比,您的 Linux 发行版很可能也自带 Xerces-C(至少最近的 SuSE 是这样)。如果是这样,请首先尝试从那里安装,并且不要忘记安装开发者软件包。
- Xerces 构建 稍微复杂一些:
tar xzf xerces-c-current.tar.gz
export XERCESCROOT=${HOME}/xerces-c-src_3_0_1
cd $XERCESCROOT/src/xercesc
autoconf
./runConfigure -plinux -cgcc -xg++ -minmem -nsocket -tnative -rpthread -P$HOME
make
make install
结束语#
以这种方式安装完所有必需的库和工具后,请注意,在构建 SUMO 时,"./configure" 运行需要以下参数:
./configure --with-fox-config=$HOME/bin/fox-config --with-proj-gdal=$HOME --with-xerces=$HOME
特定于发行版的说明#
如果您想在 Ubuntu 系统上构建并选择性地安装 SUMO,您可能需要遵循以下说明。
Ubuntu 12.04 (使用 SUMO 0.22.0 测试)#
sudo apt-get install autoconf
sudo apt-get install proj libtool libgdal1-dev libxerces-c2-dev libfox-1.6-0 libfox-1.6-dev
cd /usr/lib; sudo ln -s libgdal1.7.0.so libgdal.so cd /usr/local/src/sumo-0.22.0
tar xzf sumo-src-0.22.0.tar.gz
sudo mv -v sumo-0.22.0 /usr/local/src
cd /usr/local/src/sumo-0.22.0
./configure --with-fox-includes=/usr/include/fox-1.6 --with-gdal-includes=/usr/include/gdal --with-proj-libraries=/usr --with-gdal-libraries=/usr --with-proj-gdal
make
cd bin
sudo mv activitygen emissionsDrivingCycle netconvert polyconvert TraCITestClient dfrouter emissionsMap netgenerate sumo duarouter jtrrouter od2trips sumo-gui /usr/local/bin
Ubuntu 14.04 "Trusty Tahr" (使用 SUMO 0.22.0 测试)#
sudo apt-get install autoconf
sudo apt-get install libproj-dev proj-bin proj-data libtool libgdal1-dev libxerces-c3-dev libfox-1.6-0 libfox-1.6-dev
cd /usr/lib;
创建此链接...如果提示已存在,那更好
sudo ln -s libgdal1.7.0.so libgdal.so
sudo ln -s libproj.so.0.7.0 proj-lib.so
cd sumo-0.22.0
tar xzf sumo-src-0.22.0.tar.gz
open file "configure" and change: am__api_version='1.13' to am__api_version='1.14'
cd ..
sudo mv -v sumo-0.22.0 /usr/local/src
cd /usr/local/src/sumo-0.22.0
sudo aclocal
sudo automake --add-missing
sudo ./configure --with-fox-includes=/usr/include/fox-1.6 --with-gdal-includes=/usr/include/gdal --with-proj-libraries=/usr/lib --with-gdal-libraries=/usr --with-proj-gdal
sudo make
cd bin
sudo mv activitygen emissionsDrivingCycle netconvert polyconvert TraCITestClient dfrouter emissionsMap netgenerate sumo duarouter jtrrouter od2trips sumo-gui /usr/local/bin
cd /usr/local/share
sudo mkdir sumo-0.22.0
sudo mv /usr/local/src/sumo-0.22.0/tools /usr/local/share/sumo-0.22.0/
sudo mv /usr/local/src/sumo-0.22.0/data /usr/local/share/sumo-0.22.0/
如果存在...
sudo mv /usr/local/src/sumo-0.22.0/doc /usr/local/share/sumo-0.22.0/
Ubuntu 18.04 (使用 SUMO 0.32.0 测试)#
所需的库是 libxerces-c-dev、libgdal-dev、libproj-dev 和 libfox-1.6-dev。
CentOS / RHEL#
sudo yum install xerces-c-devel cmake libxerces-c-dev gdal-devel proj-develgl2ps-devel gcc-c++
您需要从其网站下载 fox-toolkit 并手动构建 https://www.fox-toolkit.org/download.html
Cygwin#
Cygwin 自带一个相当旧的 xerces-c(版本 2.5)。安装后,您需要在 /usr/lib 中创建一个符号链接,以便链接器找到正确的库:
cd /usr/lib; ln -s /usr/lib/libxerces-c25.dll.a /usr/lib/libxerces-c.dll.a
现在除了 GUI 之外的所有内容都应该能顺利构建。
