Windows 库

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 中查找库和包含文件。