首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >代码更改不生效

代码更改不生效
EN

Stack Overflow用户
提问于 2015-12-24 09:56:34
回答 5查看 8.4K关注 0票数 3

我刚开始在Kubuntu 15.10上使用3.5.0,QT5.4.2和GCC。我创建了一个新的项目,添加了一个窗口,目前我正在尝试开发一个新的模块。

不管发生什么奇怪的事情。

我在模板类X中编写了调试输出行。这一行位于其模块头中的X类函数中,例如:

代码语言:javascript
复制
qDebug() << "Hello1" << endl;

在构建和运行应用程序之后,将执行这一行,并按照需要在调试控制台中打印"Hello1“。此外,我还可以使用调试器和步骤通过这一行。在构建应用程序时,编译器基本上什么也不做,因为没有任何代码文件被更改(如预期的那样)。

当编辑上线时,事情会变得模糊:

  • 我将行改为"Hello2“,并保存了代码文件。
  • 我可以看到源文件的正确更新的文件修改日期/时间,并验证该文件比相应的对象文件更新。
  • 在构建项目时,编译器实际上编译了编辑的源文件,并按预期的方式链接了应用程序。我验证了更新的对象文件日期/时间和更新可执行文件日期/时间。
  • 但是,在启动应用程序时,行为并没有改变!输出仍然是"Hello1“。
  • 在使用二进制编辑器搜索可执行文件时,我仍然只能看到旧的字符串"Hello1“。没有包含"Hello“的其他字符串。
  • 在再次执行上述操作(将行更改为"Hello3")之后,仍然打印"Hello1“。

更多事实:

  • 当重新构建整个应用程序或清理项目后,更改只生效一次。
  • 这个问题在每次编辑时都是可重复的。
  • 我无法在任何其他模块中观察到这一点,它只发生在一个源模块上,而这个模块似乎在很大程度上并没有什么不同。
  • 如前所述,代码行位于模块标头中。但是修改模块本身不会改变任何事情。
  • 同时更改类X和第二个模块不会改变任何事情(第二个模块中的修改生效,类X中的修改没有影响)。
  • 标头和模块都正确地添加到.pro文件中。
  • 重新启动QtCreator不会改变任何事情。
  • 这在调试器和不调试器中都会发生。
  • 类X模块的Makefile规则看起来很合理,与其他模块的规则没有什么不同。

我不知道这怎么可能。也许我漏掉了一些明显的东西。有什么想法吗?

UPDATE:使用系统监视器,我可以确认正在运行的进程使用了预期的可执行程序。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-12-24 11:11:57

你可以尝试一些事情:

  1. 检查您正在打开的exe是否在与创建的路径相同的路径上(可以在.pro.user文件中验证它。
  2. 检查编译时,它是否首先保存了更改,然后一起编译,否则可能看起来是这样的,但不这样做。
  3. 如果您已经更改了.pro文件,那么运行qmake并重新构建它。
  4. 尝试清洁,运行qmake和重建项目。
  5. 如果您更改了您的.pro文件,或者您包含了外部库或文件,请检查输出日志以确定是否一切正常,有时不是,而是静态编译(然后链接不好,或者只允许您使用旧的编译版本)。

它似乎是在编译您的代码的最后一个“版本”,并且由于某些原因和其他原因而没有应用这些更改(如果我考虑其他事情,我稍后会编辑文章)。

希望它能帮上忙

票数 2
EN

Stack Overflow用户

发布于 2015-12-24 10:00:39

检查调试器实际运行的是哪个exe。可能是另一本!查看一个进程列表,以确定在调试器下的EXE是什么。

在我个人的经验中,这一一般性问题的发生有各种原因。文件被复制到安装/暂存区域;环境遮挡事物;错误的项目被设置为“启动”;组件在启动调试会话时运行的方式最终解析为错误的文件;错误的配置或样式正在被更改,等等。

规则1:验证你的假设。您检查了文件日期等,但在该检查中添加了哪些文件(完整路径)实际上在调试器下。

票数 1
EN

Stack Overflow用户

发布于 2018-05-12 02:55:56

修改您的main.cpp并重新编译它将更新您的代码。不知道为什么会发生这种情况,但我添加了一个cout << "Ver: 1\n“,并在每次更改头文件时更新该编号。这似乎是一个解决办法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34450830

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档