Включение файлов ресурсов в каталог сборки Qt Creator - PullRequest
12 голосов
/ 04 октября 2010

У меня есть проект, над которым я работаю с Qt Creator, и я пытаюсь заставить его автоматически добавлять файлы ресурсов в каталоги сборки (выходные данные). У меня есть файлы в каталоге проекта, но я не знаю, как отредактировать файл * .pro, чтобы включить в него файлы дополнительного содержимого. (Если это вообще возможно?)

Кто-нибудь знает, как получить файлы содержимого в точности так, как они находятся в моих выходных каталогах?

EDIT:

Просто чтобы все точно знали, что я пытаюсь сделать ... Я хочу автоматически скопировать 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 ]

11 голосов
/ 04 октября 2010

Если вы хотите автоматически копировать файлы в каталог после сборки, вы можете использовать цель после сборки.

В вашем профессиональном файле:

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

Вместо copy <from> <to> вы, очевидно, можете вызвать скрипт / пакетный файл, который выполняет больше шагов после сборки.

5 голосов
/ 04 октября 2010

Ознакомьтесь с Qt Resource System .

Чтобы добавить файл ресурсов в ваш проект, вы должны добавить следующее в ваш .pro файл ..

RESOURCES = application.qrc

Подробные примеры доступны в Документах Qt ..

После добавления в pro-файл в ваш проект Qt будет добавлен отдельный файл .qrc, с помощью которого вы сможете дважды щелкнуть и добавить нужные ресурсы, такие как значки, файлы перевода и т. Д.,

Надеюсь, это поможет ..

1 голос
/ 21 июля 2012

Сейчас 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, возможно, из-за 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.

...