在尝试将smith写入另一个文件时,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
并且没有说明文件有而不是被创建的事实。
我已经检查了写入目录的权限,一切正常。
有谁能帮我一下吗?乌利希期刊指南:我发现了别的东西:message($$system(echo 1 > 1.txt))
工作得很好。这就是让我哭泣的原因,因为我真的不明白发生了什么。
哈!我找到了解决方案,它可能听起来像给自己买一些大脑。我认为,qmake
每次项目文件更改时都会启动(message
命令的输出证明了我的想法),但这并不是Qt中真正发生的事情。
我不知道具体是怎么回事,但是它解析。pro文件,只做一些必要的操作,并且我可以看到system()
(它将改变一些文件),write_file()
命令似乎没有被调用。
Build - Launch qmake
本地启动qmake。