在尝试将smth写入另一个文件时,我遇到了qmake的奇怪行为。我阅读了所有可能的手册并搜索了互联网,但没有发现任何类似的东西。更接近最简单的代码:
!system(echo 1 > d:\1.txt) {
warning(Cant create a file)
}
它没有创建文件,也没有显示警告,这意味着操作成功。另一个例子:
var = test string
file = $$absolute_path(d:\1.txt)
message(Variable: $$var and filename: $$file)
!write_file($$pathBat, pathtowrite) {
warning(Cant create a file)
}
此块产生输出:
Project MESSAGE: Variable: test string and filename: d:/1.txt
没有任何关于文件不已被创建的事实。
我已经检查了写入目录的权限:一切似乎都很好。
有人可以帮我吗?
UPD:
我找到了别的东西:message($$system(echo 1 > 1.txt))
工作正常。这就是让我哭泣的原因,因为我真的不明白发生了什么。
答案 0 :(得分:3)
咦!我找到了解决方案,听起来像是给自己买一些大脑。我想,每次更改项目文件时qmake
都会被启动(message
命令的输出证明了我的想法),但它并不是Qt中发生的事情。
我不知道究竟是怎么回事,但它解析了 .pro 文件,只进行了一些必要的操作,正如我所见system()
(这将会改变一些文件),write_file()
命令似乎没有被调用。
解决方案非常简单:使用Build - Launch qmake
原生启动qmake。