Включение файлов ресурсов в каталог сборки Qt Creator
У меня есть проект, над которым я работаю с 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
Ответы
Ответ 1
Если вы хотите автоматически копировать файлы в каталог после сборки, вы можете использовать цель пост-сборки.
В вашем файле pro:
win32 {
copyfiles.commands = @call copy <from> <to>
}
macx {
copyfiles.commands = cp <from> <to>
}
QMAKE_EXTRA_TARGETS += copyfiles
POST_TARGETDEPS += copyfiles
Вместо copy <from> <to>
вы можете, очевидно, вызвать script/пакетный файл, который выполняет больше шагов сборки.
Ответ 2
Ознакомьтесь с системой ресурсов Qt.
Чтобы добавить файл ресурса в ваш проект, добавьте в свой файл .pro
следующее.
RESOURCES = application.qrc
Подробные примеры, доступные в Qt Docs..
После добавления в файл pro отдельный файл .qrc
будет добавлен в ваш проект Qt, с помощью которого вы можете дважды щелкнуть мышью и добавить нужные ресурсы, такие как значки, файлы перевода и т.д.,
Надеюсь, что это поможет.
Ответ 3
Сейчас 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.