Pro 文件指令:在构建步骤将目标复制到文件夹
Pro file directive: copy target to folder at build step
我有一个 TEMPLATE = subdirs
项目,其中包含 6 个按指定顺序构建的子项目。
我想将项目 1(它的目标)的输出文件复制到某个文件夹。
此文件夹通过 LIBS += -L
传递给 project2
并且 project2
可以将此文件用作静态库。
我发现了一些 .pro
文件命令可以将目标文件复制到任何地方,但它们是在部署步骤中执行的。我需要在构建步骤中完成此操作。恰好在 project1
构建之后和 project2
构建开始之前。如果那将是一些可以保存在 .pro
文件中的代码会更好。
在所有项目所在的文件夹中创建 DestDir.pri。
插入下一个代码:
isEmpty(DESTDIR) {
CONFIG(debug, debug|release) {
DESTDIR=$$PWD/Build/Debug
}
CONFIG(release, debug|release) {
DESTDIR=$$PWD/Build/Release
}
}
在每个 pro 文件中包含 DestDir.pri:
include(../DestDir.pri)
您可以将 DESTDIR 变量更改为您的路径或通过 qmake 命令行实用程序设置此变量 - 在这两种情况下,此代码都会将您的工件定位到公共文件夹。
我找到了 one more 实现该目标的方法:
copydata.commands = $(COPY_FILE) $$OUT_PWD/$(TARGET0) ~/my_libs/
first.depends = $(first) copydata
export(first.depends)
export(copydata.commands)
QMAKE_EXTRA_TARGETS += first copydata
它允许控制复制什么库文件(.so、.so.1、.so.1.0、.so.1.0.0)并且似乎是跨平台的,所以我也把它留在这里。
但我会在我的项目中使用 Milovidov 的解决方案,因为它不那么复杂。
我有一个 TEMPLATE = subdirs
项目,其中包含 6 个按指定顺序构建的子项目。
我想将项目 1(它的目标)的输出文件复制到某个文件夹。
此文件夹通过 LIBS += -L
传递给 project2
并且 project2
可以将此文件用作静态库。
我发现了一些 .pro
文件命令可以将目标文件复制到任何地方,但它们是在部署步骤中执行的。我需要在构建步骤中完成此操作。恰好在 project1
构建之后和 project2
构建开始之前。如果那将是一些可以保存在 .pro
文件中的代码会更好。
在所有项目所在的文件夹中创建 DestDir.pri。 插入下一个代码:
isEmpty(DESTDIR) {
CONFIG(debug, debug|release) {
DESTDIR=$$PWD/Build/Debug
}
CONFIG(release, debug|release) {
DESTDIR=$$PWD/Build/Release
}
}
在每个 pro 文件中包含 DestDir.pri:
include(../DestDir.pri)
您可以将 DESTDIR 变量更改为您的路径或通过 qmake 命令行实用程序设置此变量 - 在这两种情况下,此代码都会将您的工件定位到公共文件夹。
我找到了 one more 实现该目标的方法:
copydata.commands = $(COPY_FILE) $$OUT_PWD/$(TARGET0) ~/my_libs/
first.depends = $(first) copydata
export(first.depends)
export(copydata.commands)
QMAKE_EXTRA_TARGETS += first copydata
它允许控制复制什么库文件(.so、.so.1、.so.1.0、.so.1.0.0)并且似乎是跨平台的,所以我也把它留在这里。
但我会在我的项目中使用 Milovidov 的解决方案,因为它不那么复杂。