Rap*_*ael 44 qt qmake qt-creator
如何使用qmake将文件从项目复制到输出目录?
我正在Linux上编译,但将来我会在Mac和Windows上编译它.
Jak*_*les 49
您可以使用qmake函数来重用:
# Copies the given files to the destination directory
defineTest(copyToDestdir) {
files = $$1
for(FILE, files) {
DDIR = $$DESTDIR
# Replace slashes in paths with backslashes for Windows
win32:FILE ~= s,/,\\,g
win32:DDIR ~= s,/,\\,g
QMAKE_POST_LINK += $$QMAKE_COPY $$quote($$FILE) $$quote($$DDIR) $$escape_expand(\\n\\t)
}
export(QMAKE_POST_LINK)
}
Run Code Online (Sandbox Code Playgroud)
然后使用如下:
copyToDestdir($$OTHER_FILES) # a variable containing multiple paths
copyToDestdir(run.sh) # a single filename
copyToDestdir(run.sh README) # multiple files
Run Code Online (Sandbox Code Playgroud)
sje*_*397 24
以下是我们其中一个项目的示例.它显示了如何将文件复制到DESTDIR
Windows和Linux.
linux-g++{
#...
EXTRA_BINFILES += \
$${THIRDPARTY_PATH}/gstreamer-0.10/linux/plugins/libgstrtp.so \
$${THIRDPARTY_PATH}/gstreamer-0.10/linux/plugins/libgstvideo4linux2.so
for(FILE,EXTRA_BINFILES){
QMAKE_POST_LINK += $$quote(cp $${FILE} $${DESTDIR}$$escape_expand(\n\t))
}
}
win32 {
#...
EXTRA_BINFILES += \
$${THIRDPARTY_PATH}/glib-2.0/win32/bin/libglib-2.0.dll \
$${THIRDPARTY_PATH}/glib-2.0/win32/bin/libgmodule-2.0.dll
EXTRA_BINFILES_WIN = $${EXTRA_BINFILES}
EXTRA_BINFILES_WIN ~= s,/,\\,g
DESTDIR_WIN = $${DESTDIR}
DESTDIR_WIN ~= s,/,\\,g
for(FILE,EXTRA_BINFILES_WIN){
QMAKE_POST_LINK +=$$quote(cmd /c copy /y $${FILE} $${DESTDIR_WIN}$$escape_expand(\n\t))
}
}
Run Code Online (Sandbox Code Playgroud)
Cal*_*itt 14
如果使用make install,则可以使用qmake的INSTALLS变量.这是一个例子:
images.path = $${DESTDIR}/images
images.files += images/splashscreen.png
images.files += images/logo.png
INSTALLS += images
Run Code Online (Sandbox Code Playgroud)
然后执行make install
.
Okt*_*ist 13
Qt 5.6 将此添加为未记录的功能:
CONFIG += file_copies
Run Code Online (Sandbox Code Playgroud)
创造一个名称来描述您要复制的文件:
COPIES += myDocumentation
Run Code Online (Sandbox Code Playgroud)
在其.files
成员中列出要复制的文件:
myDocumentation.files = $$files(text/docs/*.txt)
Run Code Online (Sandbox Code Playgroud)
在.path
成员中指定目标路径:
myDocumentation.path = $$OUT_PWD/documentation
Run Code Online (Sandbox Code Playgroud)
(可选)指定要从源路径中修剪的基本路径:
myDocumentation.base = $$PWD/text/docs
Run Code Online (Sandbox Code Playgroud)
它基本上可以通过执行与此处许多其他答案相同的操作来工作。有关详细信息,请参见file_copies.prf。
介面与的介面非常相似INSTALLS
。
归档时间: |
|
查看次数: |
39524 次 |
最近记录: |