QT-在pro中指定DLL路径.文件

QT - Specify DLL path in pro. file

本文关键字:DLL 路径 文件 pro QT-      更新时间:2023-10-16

正如问题标题所说,我特别想知道如何在实际的项目文件中包含.dll文件的路径。我知道在项目文件中包含dll文件是更好的做法,但我仍然想知道是否可以这样做?

目前,我的.pro文件包括以下内容;

QT       += core gui
TARGET = Test
TEMPLATE = app
win32 {
    INCLUDEPATH += "D:/Projects/Build Output/include/"
    CONFIG(debug, debug|release) {
        LIBS += "D:/Projects/Build Output/libs/debug/myLib.lib"
        LIBS += "D:/Projects/Build Output/bin/x86 debug/myLib.dll"
    } 
    else {
        LIBS += "D:/Projects/Build Output/libs/release/myLib.lib"
        LIBS += "D:/Projects/Build Output/bin/x86 release/myLib.dll"
    }
}
SOURCES += main.cpp
    mainwindow.cpp
HEADERS  += mainwindow.h
FORMS    += mainwindow.ui

很酷,只是知道这是可以做到的,提前感谢您的帮助:)。

如果您的意思是希望生成的exe能够在运行时自动找到其依赖的dll文件,那么它不能用于隐式dll链接(即,与.lib文件链接,如您的示例中所示)。Windows有一个固定的搜索序列来定位必要的dll文件。这些序列都不能放入QT pro文件中。因此,下面的语句

没有任何作用只会让QT知道在该路径中搜索dll的.lib/.a文件:
 LIBS += "D:/Projects/Build Output/bin/x86 debug/myLib.dll"

最接近的方法可能是将dll路径定义为专业文件中的宏。然后使用LoadLibrary从c/c++源文件中的这些路径显式加载dll。当然,只有当您可以使用显式链接而不是隐式链接时,

您不需要将dll路径放在.pro文件(windows)中。您所需要做的就是将所有外部dll文件放在一个目录中,并将该目录添加到路径环境变量中。(与已接受的答案相同)。我在这里添加这个只是为了提到一个重要的事实:RESTART QT CREATOR使其工作,以便重新加载新的PATH环境变量。

您只需要阅读手册并执行以下操作:https://doc.qt.io/archives/qt-4.8/qmake-variable-reference.html#libs.你使用的语法似乎是正确的。