Eclipse SUMO 在 Linux 系统下的编译指南
前言
Eclipse SUMO(Simulation of Urban MObility)是一款开源的交通仿真软件,广泛应用于城市交通规划、智能交通系统研究等领域。本文将详细介绍如何在 Linux 系统下从源代码编译安装 SUMO,适合需要定制功能或参与开发的用户。
准备工作
在开始编译前,我们需要准备以下内容:
-
系统要求:
- 推荐使用 Ubuntu 或其他主流 Linux 发行版
- 需要安装 C++17 兼容的编译器(g++ 7 或更高版本,或 clang++)
- CMake 3.5 或更高版本
-
基础依赖安装(以 Ubuntu 为例):
sudo apt-get update sudo apt-get install git cmake g++
获取源代码
有两种方式获取 SUMO 源代码:
1. Git 仓库克隆(推荐开发使用)
git clone --recursive https://github.com/eclipse-sumo/sumo
cd sumo
git fetch origin refs/replace/*:refs/replace/*
2. 发布版本或每日构建包
下载对应版本的源代码压缩包后解压:
tar xzf sumo-src-<version>.tar.gz
cd sumo-<version>/
设置环境变量
设置 SUMO_HOME
环境变量指向源代码目录:
export SUMO_HOME="$PWD"
如需永久生效,可将该命令添加到 ~/.bashrc
文件中。
安装依赖库
SUMO 需要以下核心依赖库:
- 必需库:
- Xerces-C(XML 解析库)
- Fox Toolkit 1.6.x(GUI 界面)
- Proj(地理坐标转换)
- GDAL(Shapefile 支持)
Ubuntu 下安装命令:
sudo apt-get install $(cat build_config/build_req_deb.txt build_config/tools_req_deb.txt)
可选依赖库(根据需要安装):
- ccache(加速编译)
- OpenSceneGraph(3D GUI 支持)
- ffmpeg(视频输出)
- gtest(单元测试)
编译过程
1. 配置编译选项
创建构建目录并配置:
cmake -B build .
常用配置选项:
-D CMAKE_BUILD_TYPE=Debug
:调试版本-D PROJ_LIBRARY=
:禁用 Proj-D FOX_CONFIG=
:禁用 GUI-D PYTHON_EXECUTABLE=/usr/bin/python3
:指定 Python 版本
2. 开始编译
使用多核并行编译加速:
cmake --build build -j$(nproc)
3. 安装(可选)
将编译结果安装到系统目录:
sudo cmake --install build
高级编译选项
使用 Clang 编译器
CXX=clang++ cmake -DCMAKE_BUILD_TYPE=Debug -B build .
cmake --build build -j $(nproc)
构建 Python 包
可以构建 sumolib、traci 和 libsumo 的 Python wheel 包:
cd tools
pip install wheel build
python -m build --wheel
常见问题解决
-
库找不到问题:
- 确保安装了开发包(如
libfreetype-dev
) - 检查 Anaconda 等环境是否干扰了库路径
- 确保安装了开发包(如
-
编译失败:
- 尝试清理构建目录重新编译
- 确保所有依赖库版本兼容
-
性能优化:
- 安装 ccache 可显著加速重复编译
后续更新
如果通过 Git 获取代码,更新只需:
git pull
cd build
make -j$(nproc)
结语
本文详细介绍了在 Linux 系统下编译 Eclipse SUMO 的完整流程。通过从源代码编译,您可以获得最新的功能并参与项目开发。如果在编译过程中遇到问题,可以参考官方文档或社区讨论寻求帮助。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考