使用Qt编译项目后将文件复制到build目录
我有一个文件“settings.ini”,需要驻留在 Qt 可执行文件旁边。
我可以在 Qt Creator 中为此添加一个自定义构建步骤,它调用如下内容:
copy %{sourceDir}/settings.ini %{buildDir}/settings.ini
到目前为止,效果很好,但我想将其包含在 *.pro 文件中,这样我也可以将其放入我们的 SVN 中。
我怎样才能仅使用 qmake/.pro-files 来做到这一点?
I have a file "settings.ini" which needs to reside next to the Qt executable.
I can add a custom build step for this in Qt Creator which calls something like this:
copy %{sourceDir}/settings.ini %{buildDir}/settings.ini
This works great so far, but I'd like to include this in the *.pro file so I can put this up in our SVN too.
How can I do this using qmake/.pro-files only?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
要将
%{sourceDir}/settings.ini
复制到构建目录而不需要调用make install
,请使用:$$PWD< /code> 是当前
.pro
文件的路径。如果您的settings.ini
文件与项目文件不在同一目录中,请使用类似$$PWD/more_dirs_here/settings.ini
注意< /strong>:我找到了这个解决方案此处。我建议阅读整篇文章,因为它解释了它是如何工作的。
To copy
%{sourceDir}/settings.ini
to the build directory without requiring to callmake install
use:$$PWD
is the path of current.pro
file. If yoursettings.ini
file is not located in the same directory than the project file, then use something like$$PWD/more_dirs_here/settings.ini
Note: I found this solution here. I recommend to read the whole article as it explains how it works.
您可能想要使用
INSTALLS
关键字 在 QMake 中。它将要求您在构建后运行make install
,但它确实可以跨平台工作。You probably want to use the
INSTALLS
keyword in QMake. It will require you to runmake install
after your build, but it does work cross-platform.对于 osx 捆绑包,你可以这样处理
请参阅 OS X 捆绑包中的资源文件
将其添加到您的项目文件中:
此示例将文件复制到 Contents/资源
for osx bundles you can handle it this way
see Resource files in OS X bundle
add this to you project file:
this example copies the files to Contents/Resources
与 Windows 和 Mac OSX 开发环境兼容:
将 {AppName} 更改为相应的应用程序名称
如果有人在评论中发布 Unix 解决方案,我很高兴添加 Unix 支持。
Compatible with Windows and Mac OSX Dev environments:
Change {AppName} to respective application name
Happy to add Unix support if someone posts Unix solution in the comments.
对于任何想要复制多个文件或目录的人:扩展 Paglian 的答案,我发现使用命令添加另一个变量是有效的。
For anyone who is looking to copy multiple files or directories: Expanding on Paglian's answer, I found that adding another variable with commands worked.
我最终创建了一个 python 脚本,在其中复制文件。
然后在 .pro 文件中添加以下行:
我使用
$$PWD
传递源目录,并使用$$OUT_PWD
传递构建目录。然后,python
copy_requirements.py
脚本使用这些变量将所需的文件从源目录复制到构建目录。这是代码编译后执行的。这适用于 Windows / Linux。根据 Qt 文档,这不适用于 Xcode 项目。
I ended up creating a python script where I do the copy of the files.
Then in the .pro file I add the following line:
I pass the source directory with
$$PWD
and the build directory with$$OUT_PWD
.The python
copy_requirements.py
script then uses these variables to copy the files needed from the source directory to the build directory. This is executed after the code compilation.This works on windows / linux. According to Qt documentation this doesn't work on Xcode projects.