【问题标题】:Automatic copying of DLLs in qmake won't work在 qmake 中自动复制 DLL 不起作用
【发布时间】:2013-09-03 14:34:37
【问题描述】:

我正在尝试让 qmake 自动将我的程序的 DLL 复制到目标路径,但它不起作用。这是我的 .pro 文件的相关部分:

QT_DIR = C:/Qt/5.1.1/mingw48_32/bin
MY_TARGET_DIR = $$PWD/debug
MY_LIB_FILES += QT_DIR/QT5CORED.DLL
MY_LIB_FILES += QT_DIR/QT5SERIALPORTD.DLL
MY_LIB_FILES += QT_DIR/QT5WIDGETSD.DLL
MY_LIB_FILES += QT_DIR/LIBGCC_S_DW2-1.DLL
MY_LIB_FILES += QT_DIR/LIBWINPTHREAD-1.DLL
MY_LIB_FILES += QT_DIR/LIBSTDC++-6.DLL
MY_LIB_FILES += C:/qwt-6.1.0/lib/QWTD.DLL
extra_libs.files = MY_LIB_FILES
extra_libs.path = MY_TARGET_DIR
INSTALLS += extra_libs

QMake 运行正常,但 make install 发出警告

 Nothing to be done for 'install'.

DLL 不会复制到目标目录。另外,我尝试更优雅地编写代码,但似乎 $$QMAKE_LIBDIR 等一些 QMake 变量为空。我做错了什么?

这是来自 Qt 5.1.1 的 qmake。

【问题讨论】:

    标签: qt qmake


    【解决方案1】:

    您需要在 QT_DIR 变量前面加上双倍美元才能完成这项工作:

    QT_DIR = C:/Qt/5.1.1/mingw48_32/bin
    MY_TARGET_DIR = $${PWD}/debug
    MY_LIB_FILES += $${QT_DIR}/QT5CORED.DLL
    MY_LIB_FILES += $${QT_DIR}/QT5SERIALPORTD.DLL
    MY_LIB_FILES += $${QT_DIR}/QT5WIDGETSD.DLL
    MY_LIB_FILES += $${QT_DIR}/LIBGCC_S_DW2-1.DLL
    MY_LIB_FILES += $${QT_DIR}/LIBWINPTHREAD-1.DLL
    MY_LIB_FILES += $${QT_DIR}/LIBSTDC++-6.DLL
    MY_LIB_FILES += C:/qwt-6.1.0/lib/QWTD.DLL
    extra_libs.files = MY_LIB_FILES
    extra_libs.path = MY_TARGET_DIR
    INSTALLS += extra_libs
    

    旁注:a bug in qmake 导致包含特殊字符的文件(如libstdc++-6.dll 名称中的+)在Windows 上安装期间不会被复制。检查my comment in the bug report 以获得解决方法。

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 2013-10-16
      • 1970-01-01
      • 2013-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多