2

Qt Creatorを使用してツールを作成しています。このツールはビルドされますが、すぐに次のメッセージでクラッシュします。

「コンピュータにpthreadVC2.dllがないため、プログラムを起動できません。プログラムを再インストールして、この問題を解決してください。」

もちろん、「pthreadVC2.dll」ライブラリは欠落しておらず(他のプロジェクトで動作するため破損していません)、Qtプロファイルで指定されたパスにあります。

# 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

これにより、ライブラリのフォルダがライブラリ検索パス(大文字に注意-L)およびpthreadVC2.libリンク先のライブラリ(小文字-l)として追加されます。

.dllは実行時にロードされるため、LIBSパスに.dllを追加する必要はありません。

ただし、このアプローチは、.libが.dllと同じフォルダーにある場合にのみ機能します。私はあなたが別の場所にあなたのものを持っていることに少し驚いています。

多分追加

LIBS += -LS:/3rdparty

うまくいくでしょうが、それについてはよくわかりません。

いずれにせよ、リリース用に.exeを使用して.dllを展開する必要があります。

于 2012-12-19T12:04:53.443 に答える