QT Creator时不时会出现一些奇怪的问题。以下说的现象是在Ubuntu下,windows下有没有我不知道。
比如你的build路径是某个固定的路径,这时候你想更新代码版本,把代码复制了一份,重新用QT打开,此时build路径不变。这时候会直接用以前的那个代码编译。可能是有些部分默认没有修改就不编译。这时候一定要清除后再编译。
本文记载的并不是这个。这次无法编译,是清除了也没用。然后清除关掉软件再打开,重新编译也没用。关掉操作系统重新启动,再打开软件也没用。然后把代码复制出来,重新创建了一个新的文本,把代码复制进去,然后扔到相应的文件夹中,再编译还是没用。最后把Build路径换了,终于可以编译了。然后试了下把以前的Build文件夹删除,编译之后,同样起效果了。
我回忆了一下,似乎在无法编译之前做了个系统时间的修改。我的Ubuntu是在虚拟机下使用的,之前时间一直不对,然后用虚拟机设置了让虚拟机和系统同步时间,然后我的虚拟机时间就提前了十几个小时。然后我去问一个同事,他说QT编译之前会核对一下时间,时间早于之前的就不编译了。后来我回去把时间改回去了。好像没有重现这个情况。现在想来,要把系统时间再往前改,是不是才能重现这个情况,可惜太忙一直没有做这件事,将来有空试试
其实检测一下时间确实是个好方法,如果发现代码比生成的文件要早,说明这个文件是不需要编译的,可以节省编译时间。可是奇葩的是,我已经清除了,没有那些文件了,为什么还能用以前的老代码编译,这里面的机制的确不清楚。将来有时间要再研究研究,总之以后编译完出现奇怪的现象,先考虑一下是否编译成功了。