在Qt Creator构建目录中包含资源文件

时间:2010-10-03 20:26:47

标签: qt file resources qt-creator

我有一个项目,我正在使用Qt Creator,我正在尝试将它的资源文件自动添加到我的构建目录(输出)。我有项目目录中的文件,但我不知道如何编辑* .pro文件以使其包含其他内容文件。 (如果可能的话?)

有没有人知道如何准确地将内容文件放入输出目录中?

编辑:

所以每个人都知道我正在尝试做什么...我想自动将FFmpeg作为可执行文件复制到我的构建目录中。这样,如果构建输出不存在,它将在调试应用程序之前复制。

我正试图阻止清理操作消除资源,我不得不一次又一次地将它们复制回来。另外......我在多台计算机上工作并使用SVN或Dropbox,所以我想保持路径相对。当我从一台计算机移动到另一台计算机时,它们会发生变化。

最终答案:

CONFIG(release, debug|release) {
    DESTDIR = release
} else {
    DESTDIR = debug
}

#for Windows
win32 {
    #in Windows, you can use & to separate commands
    copyfiles.commands += @echo NOW COPYING ADDITIONAL FILE(S) &
    copyfiles.commands += @call copy ..\\$${TARGET}\\ffmpeg.exe $${DESTDIR}\\ffmpeg.exe
}

#for Mac
macx {
     #commands would go here if I had them
}

QMAKE_EXTRA_TARGETS += copyfiles
POST_TARGETDEPS += copyfiles

3 个答案:

答案 0 :(得分:11)

如果要在构建后自动将文件复制到目录中,可以使用构建后目标。

在你的专业档案中:

win32 {
    copyfiles.commands = @call copy <from> <to>
}
macx {
    copyfiles.commands = cp <from> <to>
}
QMAKE_EXTRA_TARGETS += copyfiles
POST_TARGETDEPS += copyfiles

而不是copy <from> <to>你可以明显地调用一个脚本/批处理文件来执行更多的构建后步骤。

答案 1 :(得分:5)

查看Qt Resource System

要将资源文件添加到项目中,您需要在.pro文件中添加以下内容..

RESOURCES = application.qrc

Qt Docs中提供的详细示例..

一旦添加到专业文件中,您的Qt项目中将添加一个单独的.qrc文件,您可以使用该文件双击并添加所需的资源,如图标,翻译文件等。

希望有所帮助......

答案 2 :(得分:1)

现在是2012年,这些方法都不适合我。我收到这个错误:

mingw32-make[1]: Leaving directory `C:/src/GL-Texture-build-desktop-Qt_in_PATH_Debug'
/usr/bin/sh: copy: command not found
mingw32-make[1]: *** [copyfiles] Error 127
mingw32-make: *** [debug] Error 2
00:28:19: The process "C:\QtSDK\mingw\bin\mingw32-make.exe" exited with code 2.
Error while building/deploying project GL-Texture (target: Desktop)
When executing step 'Make'

看着这条消息,我很惊讶地看到它正在使用sh shell,可能是因为mingw。无论如何我使用unix等价物解决了这个问题:

CONFIG(release, debug|release) {
    DESTDIR = release
} else {
    DESTDIR = debug
}

#for Windows
win32 {
    copyfiles.commands += @echo NOW COPYING ADDITIONAL FILES &
    copyfiles.commands += cp -r ../$${TARGET}/textures $${DESTDIR}/
}

QMAKE_EXTRA_TARGETS += copyfiles
POST_TARGETDEPS += copyfiles

这在Windows 7 / QT 4.6.3上发生。