我是使用QT的新手,所以我想这有一个简单的答案,但它让我望而却步。我正在将应用程序移植到QT中,我开始使用QTEditor来做到这一点。我的编译器是MinGw,QT版本是4.7.4,操作系统是Windows 7。
编译和链接都很好。在运行期间,我得到退出代码0xc0000135,这意味着缺少依赖项。有问题的依赖是我自己编写的C库,也是用mingw编译的,所以没有二进制兼容性问题。另外,如果我将.dll放在与生成的可执行文件相同的目录中,那么应用程序运行正常。
以下是.pro文件的相关部分:
win32:LIBS += C:\Projects_SourceCode\MyLib\Bin\Release\MyLib.dll
win32:INCLUDEPATH += C:\Projects_SourceCode\MyLib\
我错过了什么?这编译和链接很好,但后来可执行文件无法找到“MyLib.dll”。我想避免把它放在路上。 QTEditor中是否有办法让可执行文件知道在哪里搜索.dll?
我习惯使用Codeblocks IDE,从那里开始做这样的事情真的很容易,所以我认为QTEditor也允许这样的选择。任何帮助将不胜感激。
答案 0 :(得分:1)
您只能将其添加到PATH变量中以用于运行环境(而不是整个系统) - 您可以在项目屏幕中操作运行环境。显然这只适用于调试,而不适用于生产可执行文件。要分发您的应用程序,请考虑将dll放在与主可执行文件相同的目录中。
在哪里查找dll(至少在Windows上)不是用可执行文件编写的 - 系统首先查看可执行文件目录,然后查看PATH目录,这样就不能以其他方式执行了。在哪里查找DLL是一个执行问题,而不是编译,所以不要指望qmake项目文件来帮助你。