我刚开始在Kubuntu 15.10上使用Qt Creator 3.5.0,Qt 5.4.2和GCC。我创建了一个新项目,添加了一个窗口,目前我正在尝试开发一个新模块。
然而奇怪的事情发生了。
我在模板类X中编写了一个调试输出行。该行位于其模块标题中的类X的函数中,例如:
qDebug() << "Hello1" << endl;
在构建并运行应用程序之后,执行此行并且&#34; Hello1&#34;根据需要在调试控制台中打印。我也可以使用调试器并逐行完成。构建应用程序时,编译器基本上没有做任何事情,因为没有更改代码文件(如预期的那样)。
在编辑上述内容时,我们会选择:
更多事实:
我不知道这是怎么回事。也许我错过了一些明显的事有什么想法吗?
更新: 使用系统监视器,我可以确认正在运行的进程使用预期的可执行文件。
答案 0 :(得分:1)
检查调试器实际运行的exe。它可能是另一个副本!查看流程列表,了解确定调试器下的EXE。
根据我个人的经验,这个一般性问题已经出现了各种各样的原因。文件被复制到安装/暂存区域;环境影响事物;错误的项目设置为&#34;启动&#34 ;;启动调试会话时组件的运行方式最终会解析为错误的文件;错误的配置或风味正在改变;等
规则1:验证您的假设。您检查了文件日期等,但添加到检查调试器实际上是什么文件(完整路径)。
答案 1 :(得分:1)
你可以尝试一些事情:
它似乎正在编译代码的最后一个“版本”,并且没有因某些原因和其他原因而应用更改(如果我认为在其他方面我将稍后编辑帖子)。
希望有所帮助
答案 2 :(得分:1)
修改你的main.cpp并重新编译它应该更新你的代码。不知道为什么会这样,但我添加了一个cout&lt;&lt; “Ver:1 \ n”;并在每次更改头文件时更新数字。这似乎是一种解决方法。
答案 3 :(得分:0)
我也遇到过这个问题。我能够通过清理(在我的情况下运行catkin clean
)然后重新构建它(catkin_make
)来解决它。
不幸的是,我无法找出问题的确切原因,但希望有更多知识渊博的人有一个想法。
此外,我的开发环境不同(Ubuntu 14.04,Qmake 3.1,Qt 5.9.1,gcc 4.8.4,catkin工具0.4.4,Qt Creator等),所以显然我的修复可能对每个人都不起作用。
答案 4 :(得分:0)
在Qt 5.8下问题仍然存在:
使用clang的Qt 5.8在Qt Creator内使用OSX在OSX下为OSX构建64位时,此问题继续出现。因此,这不是海湾合作委员会的问题。
解决方案:
我能够通过以下方式获取依赖编译器以正确响应对新添加的头文件的更改:
检查:
在执行上述操作之前,我检查了项目文件,并确保新文件已列在listOfIdandAge
部分中。尽管如此,Qt不会重建包含{{1 }}文件。