Note
大多数情况下,您无需自行构建库。您可以直接使用 https://github.com/DLR-TS/SUMOLibraries 上提供的版本,具体说明请参阅 Windows 构建说明。
独立包#
Xerces-C#
SUMO 默认使用 Xerces-C 3.1.x 或 3.2.x。请注意,当在网络中使用 Unicode 字符时(特别是从 OpenStreetMap 导入中文街道名称时),Xerces-C 3.1.4 可能会导致问题。
Apache 不再提供二进制发行版,但您可以尝试使用我们在 SUMOLibraries 中自行构建的 Xerces-C 3.2.4。请注意,通过设置环境变量来查找自定义 Xerces 构建的方法已不再有效。
Fox#
- 如果您不需要 GUI,可以跳过本节。
- SUMO 使用 Fox 1.6,不兼容 Fox 1.7。
- 通常您无需自行构建 Fox,可以 使用现成的编译二进制文件。
- 如果您坚持要自行构建,请 下载最新的源代码 并替换 SUMOLibraries 中的源代码(请确保不要删除下文提到的项目文件)。
- 进入 Fox 目录并打开 VC 项目,例如 D:\SUMOLibraries\fox-1.6.58\windows\vcpp\x64.sln。
- 您可能会遇到大约 240 个警告和一个错误,只要能在 lib 目录中找到生成的 DLL,这些错误大概可以忽略。
- 如果出现找不到 windows.h 的错误,则说明 SDK 未正确安装。
Fox 中的 PNG 支持#
- 警告:此操作略显高级,我们曾成功使用 libpng 1.5.2 和 1.6.20 配合 zlib 1.2.5 和 1.2.8。
- 从 [1] 和 [2] 下载 zlib 源代码和 libpng 源代码。
- 解压所有 zip 文件。
- 无需构建 zlib。
- 首先在 <libpng>\projects\vstudio\zlib.props 中调整路径(如有必要),然后使用同一目录下的 vstudio.sln 构建 libpng 项目。
- 您将在 <libpng>\projects\vstudio\Debug\ 中获得一个 png 库和一个 dll。
- 如果想确保万无一失,也可以构建 pngtest 项目并检查输出。
- 如果需要,可以构建 / 添加更多配置 / 平台。
- 打开 Fox 项目解决方案并编辑 foxdll 的属性
- 在 C++/常规 部分,将 <libpng> 目录添加到包含路径中。
- 在 C++/预处理器 部分,添加 HAVE_PNG_H 定义。
- 在 链接器/输入 部分,将 .lib 文件添加到输入中。
- 重新编译 fox,并将生成的 dll 与 libpng dll 一起放入您的路径中。
Fox 中的 JPEG 支持#
- 警告:此操作略显高级,我们曾成功使用 jpeg 8d 和 9b,fox-toolkit 网站上的 jpeg 8c 是损坏的。
- 从 [4] 下载 libjpeg 源代码并解压。
- 下载 win32.mak 并将其放入 jpeg 目录。
- 打开 Visual Studio 命令提示符,cd 到 jpeg 目录并执行
nmake /f makefile.vc setup-v10
nmake /f makefile.vc
- 您将在 jpeg 目录中获得一个 libjpeg 库(没有 dll!)。
- 如果需要不同的配置 / 平台,也可以打开解决方案文件 jpeg.sln 并从 GUI 构建 jpeg。
- 打开 Fox 项目解决方案并编辑 foxdll 的属性
- 在 C++/常规 部分,将 jpeg 目录添加到包含路径中。
- 在 C++/预处理器 部分,添加 HAVE_JPEG_H 定义。
- 在 链接器/输入 部分,将 .lib 文件添加到输入中。
- 重新编译 foxdll(见上文),并将生成的 dll(其中已静态链接了 jpeg 支持)放入您的路径中。
PROJ 和 GDAL#
如果您不需要地理坐标转换,可以在 CMakeCache.txt 中禁用 PROJ 和 GDAL(将所有引用 PROJ 或 GDAL 的行设为空),并跳过本节。否则,您可以在下载 SUMOLibraries 的二进制包或自行编译(适合喜欢冒险的用户)之间进行选择。仅当您需要 32 位构建或某些过时版本时,才需要从源代码构建。
从源代码构建#
如果您出于某种原因想自行构建 PROJ 和 GDAL,请遵循相关的 PROJ 构建说明 和 GDAL 构建说明。然后,您应该用您构建的版本替换 SUMOLibraries 中的版本。
FFMPEG#
仅当您想直接从 sumo-gui 保存视频,且因某种原因无法使用 SUMOLibraries 中提供的版本时,才需要此库。
- 您只需下载 ffmpeg 二进制发行版 的 Shared 和 Dev 版本。同时请确保下载您需要的所有平台(32 位和/或 64 位)。
- 解压 Dev 版本,并用它覆盖您 SUMOLibraries 中的版本。
- 解压 Share 版本,并将 bin 目录中的 dll 文件复制到 SUMOLibraries 中。
OpenSceneGraph#
这仅与 3D GUI 相关。您需要至少构建 OSG 3.4.0,因为早期版本不兼容 Visual Studio 2012。不幸的是,没有现成的二进制文件可用。如果您想使用 <SUMO>/data/3D 中未包含的模型,可以将包含这些模型的目录添加到 OSG_FILE_PATH 环境变量中。构建过程将在 SUMOLibraries 中查找库和包含文件。
