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

时间:2012-09-07 22:51:57

标签: c++ qt project-files

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

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

3 个答案:

答案 0 :(得分:2)

如果你的意思是你想要生成的exe可以在你运行它时自动找到它的依赖dll文件,那么它就无法用于隐式dll链接(即链接.lib文件,如你的例子)。 Windows有a fixed search sequence来查找必要的dll文件。这些序列都不能放入QT pro文件中。所以下面的语句没有效果只让QT知道在该路径中搜索dll的.lib / .a文件:

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

最接近的方法可能是将dll路径定义为pro文件中的宏。然后从c / c ++源文件中的那些路径使用LoadLibrary到explicitly load dlls。当然只有你可以通过显式链接而不是隐式链接来解决,

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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