2

我正在使用 Qt Creator 编写一个工具,该工具可以构建但会立即崩溃并显示以下消息:

“程序无法启动,因为您的计算机中缺少 pthreadVC2.dll。请尝试重新安装程序以解决此问题”。

当然,“pthreadVC2.dll”库并没有丢失(也没有损坏,因为它与其他项目一起使用),它位于 Qt pro 文件中指定的路径中:

# DeltaPlots.pro

TARGET = DeltaPlots
QT += core gui
CONFIG += console
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
TEMPLATE = app

win32 {
    INCLUDEPATH += S:\\3rdparty\\DFS.Infrastructure.ThreadingW \
                   S:\\3rdparty\\DFS.Infrastructure.File \
            "C:\\path\\to\\boost\\boost_1_51_0"

    win32-g++:LIBS += -L"S:\\lib\\" -lMyLib
    win32-g++:LIBS += -L"S:\\3rdparty\\DFS.Infrastructure.File\\" -lDFS.Infrastructure.FileSystem
    win32-g++:LIBS += -L"S:\\3rdparty\\DFS.Infrastructure.ThreadingW\\" -lDFS.Infrastructure.Threading -lpthreadVC2
}

SOURCES += MainWindow.cpp \
           entrypoint.cpp

HEADERS += MainWindow.h

FORMS   += MainWindow.ui

OTHER_FILES += ProjectList.txt \
               ImageList.txt

平台:
Windows 7
MinGW
Qt 4.8.3
Qt Creator 2.6.0

4

1 回答 1

1

[编辑:这个答案是指原始问题]

通常你会添加

LIBS += -LS:/3rdparty/DFS.Infrastructure.ThreadingW \
        -lpthreadVC2

这会将您的库文件夹添加为库搜索路径(注意大写字母)-LpthreadVC2.lib要链接的库(小写字母-l)。

您不需要将 .dll 添加到 LIBS 路径,因为 .dll 是在运行时加载的。

但是:这种方法仅在 .lib 与 .dll 位于同一文件夹中时才有效。我有点惊讶你在不同的地方有你的。

也许添加

LIBS += -LS:/3rdparty

会工作,但我不确定。

无论如何,您需要将 .dll 与您的 .exe 一起部署以进行发布。

于 2012-12-19T12:04:53.443 回答