使用 dev-c++ 运行我的 GIS 应用程序可以"gdal201.dll is missing"

Running my GIS application using dev-c++ gives "gdal201.dll is missing"

本文关键字:gdal201 dll is missing 运行 dev-c++ 我的 GIS 应用程序 使用      更新时间:2023-10-16

我正在使用 Dev-C++ 在 C++ 中开发 GIS 应用程序,现在开始使用链接教程中给出的代码

我让它在没有错误或警告的情况下编译,但是当我尝试运行它时,我收到错误"程序无法启动,因为 gdal201.dll 从您的计算机中丢失。尝试重新安装该程序以解决此问题。 我正在查看另一个具有类似问题的问题,并尝试在互联网上搜索此dll,但在任何地方都找不到它,有人提到忽略该错误,但我不知道该怎么做。

谁能帮我在这里做什么?

提前谢谢。

您需要 DLL 文件与可执行文件位于同一目录中,或者存在于Path变量中,以便系统能够找到它们。 我个人更喜欢设置Path. 您可以考虑通过编辑系统或用户环境变量将GDAL_DIRbin添加到永久Path中,或者在桌面上创建一个小批量文件,该文件将目录添加到Path然后启动devenv.exe如果您需要为不同的项目管理多个不兼容的开发环境。

(根据我的经验,与将 DLL 文件复制到可执行文件相同的目录相比,这有几个优点:通过包含所有必要的目录来管理依赖项更容易,而不是手动跟踪所有递归依赖项。 如果只需更新 GDAL 安装目录,或者将Path或批处理文件更新到较新的 GDAL 安装目录,则管理 DLL 的更新也会更容易,而不必跟踪已将 DLL 复制到的所有位置,也不必管理生成后脚本以每次都复制 DLL。

(当然,当需要创建自包含安装程序时,最简单的方法是在构建安装程序之前将依赖 DLL 复制到安装程序映像目录。 然后,像CMake的BundleUtilities模块这样的东西可以帮助跟踪需要包含哪些DLL。

通常我将私有 DLL 复制到项目的输出文件夹,即与可执行文件相同的文件夹。对于商业应用程序,您可能需要安装 DLL,让操作系统处理它的管理,并使用程序集清单来帮助加载程序找到它。