Qt:如何在项目文件中创建目录?

Qt: How to create a directory in project file?

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

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

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

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

当我 $(MKDIR).

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

简答

像这样使用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