【问题标题】:Qt: How to create a directory in project file?Qt:如何在项目文件中创建目录?
【发布时间】:2017-03-01 14:57:04
【问题描述】:

我只想跨平台从 *.pro 文件创建一个目录。我很好地使用了 $(COPY_DIR) 和 $(COPY_FILE) 之类的命令。我在互联网上看到了许多使用命令 $(MKDIR) 的示例,但它对我不起作用。

它打印: C:/Projects/installer/installer.pro(24): 测试表达式后多余的字符。

当我在第 24 行使用 $$(MKDIR) 时。

或者: C:/Projects/installer/installer.pro(24): '$' 不是公认的测试函数。

当我 $(MKDIR).

在 qmake 项目中创建目录的正确方法是什么?

【问题讨论】:

  • 请编辑问题并添加对您正在尝试执行的操作和相关项目文件片段的描述。据推测,您不希望在 qmake 本身正在运行但在构建项目时复制文件 - 到目前为止还不清楚您想要什么。

标签: qt qmake


【解决方案1】:

简答

像这样使用QMAKE_MKDIR

mytarget.commands += $${QMAKE_MKDIR} $$shell_path($${OUT_PWD}/foo)

长答案

qmake 提供了保存有用命令的变量。查看 Qt Wiki 上的 Undocumented QMake 文章。您正在寻找的是QMAKE_MKDIR,但您也可能对QMAKE_CHK_DIR_EXISTS 感兴趣。

如果 qmake 给出的值不适合你,你可以使用环境来检索 mkdir 命令:

$(MKDIR) $$shell_path($${OUT_PWD}/foo)
$$(MKDIR) $$shell_path($${OUT_PWD}/foo)

$(...) 语法在运行make(或nmake...)时检索环境变量,而$$(...) 在运行qmake 时检索它。

mkdir 命令也应该在用QMAKE_EXTRA_TARGETS 声明的“make target”的上下文中调用。请参阅 qmake 文档中的 Adding custom targets

【讨论】:

  • 谢谢。有用。我的错误是我使用了与“mytarget.commands”分开的 $(MKDIR) :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-12
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多