将 DLL 链接到 C++ 程序 QTCreator
linking DLL's into c++ program QTCreator
我对这个概念有点陌生,并且在运行时加载库时遇到了一些问题。在我正在使用的开发机器上,库似乎已正确加载,程序将始终正常运行,但是当我编译此程序并将其移动到具有所需 DLL 的另一台计算机上时,它们无法加载。我认为发生这种情况的主要原因是因为未加载的 DLL 位于系统上某处的文件夹中(如 C:\windows\system32),而大多数其他计算机上都不存在。
我的问题是,如果我提供具有所需功能的自定义 DLL 并将其与程序一起提供,如何让它在 QTCreator 中正确链接?我已经尝试了 -l 和 -L 标志的组合(例如:-llibname -LC:\path\to\where\dll\will\be),但这似乎也没有解决问题。另一个令人惊讶的事情(无论如何对我来说)是,即使程序运行需要DLL,该程序仍然成功启动了其他计算机。
如果有人有任何建议或教程,我可以阅读,我将不胜感激。
首先,您应该阅读Windows如何查找DLL以加载它们。
其次,一旦您知道该过程的工作原理,您就可以考虑将 DLL 与您的应用程序一起交付,以便在其他机器上运行时问题消失。您应该检查您是否有权执行此操作,如果他们是第三方 DLL。
第三,Windows依赖关系walker工具在运行时诊断DLL加载问题方面非常出色。只需在其中加载一个.exe
并按 F7 即可开始分析。它将显示应用程序加载的所有 DLL 以及从何处加载。
最后,我不知道 QTCreator,但我想您需要做的就是使用正确的开关将.lib
文件传递给它(此链接表明-L
是正确的开关,FWIW)。
相关文章:
- 如何使用QtCreator将应用程序与"libqsqlpsql.so"链接?
- 使用 QtCreator 构建 CUDA/C++ 测试程序时出现错误 2
- QTCreator GUI应用程序中包含窗口基源代码并在代码中打开
- QT程序无法编译/具有运行时错误(IDE:CodeBlocks/QTCreator)
- 在Linux中编译基本QtWidgets应用程序时的QtCreator问题
- QtCreator拒绝执行自定义python程序作为构建步骤命令
- Qt应用程序在从QtCreator启动时查找库,但不是从命令行启动
- 无法在 QtCreator 中调试应用程序
- 从QtCreator启动OpenGl应用程序的严重问题
- 以"simple c++"模式编译的程序在从QtCreator启动时不起作用
- QtCreator 2.7.2(Windows)控制台应用程序:如何粘贴到控制台中
- QtCreator如何在构建Windows应用程序时避开控制台窗口
- 从QtCreator导出可执行程序
- 设置QtCreator为Ubuntu 14.04上的arm7设备开发应用程序
- 在使用QtCreator和Visual Studio构建的应用程序之间使用Qt STL
- QtCreator:启动程序失败.路径或权限错误
- 简单的程序无法使用 qtcreator 进行编译
- 在调试c++程序时,QTCreator不能识别可执行文件
- 在Windows8上使用Qtcreator构建(编译)一个基本的独立.exe应用程序
- 将 DLL 链接到 C++ 程序 QTCreator