9

所以正如问题标题所说,我特别想知道如何在实际项目文件中包含 .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

会很酷,只是知道它可以完成,提前感谢您的帮助:)。

4

3 回答 3

4

如果您的意思是您希望生成的 exe 可以在您运行它时自动找到其依赖的 dll 文件,那么它不能用于隐式 dll 链接(即与 .lib 文件链接,如您的示例中所示)。Windows 有一个固定的搜索顺序来定位必要的 dll 文件。这些序列中的任何一个都不能放入 QT pro 文件中。所以下面的语句没有效果 只让 QT 知道在该路径中搜索 dll 的 .lib/.a 文件:

 LIBS += "D:/Projects/Build Output/bin/x86 debug/myLib.dll"

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

于 2012-09-08T00:44:49.373 回答
1

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

于 2016-06-19T11:46:16.237 回答
0

您只需要阅读手册并执行相同的操作:http: //qt-project.org/doc/qt-4.8/qmake-variable-reference.html#libs。您使用的语法似乎是正确的。

于 2012-09-07T23:43:45.133 回答