使用 dev-c++ 运行我的 GIS 应用程序可以"gdal201.dll is missing"
Running my GIS application using dev-c++ gives "gdal201.dll is missing"
我正在使用 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,让操作系统处理它的管理,并使用程序集清单来帮助加载程序找到它。
- 挂起和取消挂起一个文件DLL
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- C++:将外部库链接到dll库
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 不同的Visual Studio版本中缺少.dll
- 从DLL中删除类的实例
- 如何包装第三方DLL在R中使用
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- 使用 dev-c++ 运行我的 GIS 应用程序可以"gdal201.dll is missing"
- gdal201.dll在Visual Studio 2012上的计算机错误中缺少