c++ - Qt安装不会复制文件

标签 c++ windows qt

我正在为一个项目使用 Qt 5.5,并尝试使用安装功能将文件复制到构建目录中。我在我的 .pro 中有(这是我用来尝试找出问题的简化版本):

copy_files.path = $${OUT_PWD}/debug
copy_files.files = win32_libs/*
INSTALLS += copy_files

我在构建配置中的“make”之后有一个额外的步骤,即调试和发布的“Make install”(从“Make”下拉项中选择)。在 clean -> run qmake -> build 之后,Qt 绝对拒绝将“win32_libs”中的任何文件复制到调试构建目录中。

如果我只指定“win32_libs”而不是“win32_libs/*”,它会复制目录(没有帮助),事实证明它会复制任何目录,但不会复制文件,除非它们包含在目录中(同样,没有帮助)。

那么我怎样才能说服它只复制文件呢?

最佳答案

在遇到类似的问题但无法直接解决后,我决定对 Windows 目标进行变通,例如:

# post build copy dependencies
win32 {
     # all the necessary files listed relative to the root project directory
    OTHER_FILES += stuff\myfile1 stuff\myfile2
    OTHER_FILES += stuff\myfile3 stuff\myfile4

    DESTDIR_WIN = $$DESTDIR
    DESTDIR_WIN ~= s,/,\\,g
    # debug pro file statement
    message(Destination WINDOWS $$DESTDIR_WIN)

    PWD_WIN = $${PWD}
    PWD_WIN ~= s,/,\\,g
    for(FILE, OTHER_FILES){
        QMAKE_POST_LINK += xcopy /d/y $${PWD_WIN}\\$${FILE} $${DESTDIR_WIN}$$escape_expand(\\n\\t)
    }
}

并且 xcopy 命令提供了参数以避免实际不必要的复制。

关于c++ - Qt安装不会复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35708052/

相关文章:

c++ - 如何找到机器代码指令的结尾以增加指令指针

c++ - 如何知道连接到 QTcpServer 的客户端是否已关闭连接?

c++ - 如何将文件放入 boost::interprocess::managed_shared_memory?

c++ - 如何在qt中使用带有两个参数的qDebug()?

qt - 如何覆盖 TableView.rowDelegate 的某些属性,同时保持其他属性默认

c++ - CLion不索引任何外部包含路径

c++ - 相同方法签名的模板化和显式参数类型版本

c++ - 将 dll 引用到应用程序后编译出错

windows - 没有图标的 UWP 控制台应用程序,只有执行别名

python - GAE Python - PyCrypto - 没有名为 winrandom 的模块