Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 代码更改不会生效_C++_Qt_Compilation_Qt Creator_Build Process - Fatal编程技术网

C++ 代码更改不会生效

C++ 代码更改不会生效,c++,qt,compilation,qt-creator,build-process,C++,Qt,Compilation,Qt Creator,Build Process,我刚开始在Kubuntu 15.10上使用QtCreator 3.5.0、Qt5.4.2和GCC。我创建了一个新项目,添加了一个窗口,目前我正在尝试开发一个新模块 不管发生多么奇怪的事情 我在模板类X中编写了一个调试输出行。该行位于其模块头中类X的函数中,例如: qDebug() << "Hello1" << endl; qDebug()检查调试器实际运行的exe。它可能是另一个副本!查看进程列表以确定调试器下有哪些EXE 在我个人的经历中,这个普遍的问题是由于各种原因

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

不管发生多么奇怪的事情

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

qDebug() << "Hello1" << endl;

qDebug()检查调试器实际运行的exe。它可能是另一个副本!查看进程列表以确定调试器下有哪些EXE

在我个人的经历中,这个普遍的问题是由于各种原因发生的。将文件复制到安装/暂存区域;环境遮蔽了事物;错误的项目设置为“启动”;启动调试会话时组件的运行方式最终解析为错误的文件;正在更改错误的配置或味道;等等


规则1:验证你的假设。您检查了文件日期等,但还检查了调试器下实际存在的文件(完整路径)。

检查调试器实际运行的exe。它可能是另一个副本!查看进程列表以确定调试器下有哪些EXE

在我个人的经历中,这个普遍的问题是由于各种原因发生的。将文件复制到安装/暂存区域;环境遮蔽了事物;错误的项目设置为“启动”;启动调试会话时组件的运行方式最终解析为错误的文件;正在更改错误的配置或味道;等等


规则1:验证你的假设。您检查了文件日期等,但还检查了调试器下实际存在的文件(完整路径)。

您可以尝试以下操作:

  • 检查您打开的exe文件是否与创建的exe文件在同一路径上(您可以通过查看.pro.user文件进行验证)
  • 检查编译时,它是否先保存更改,然后将其编译在一起,否则它可能看起来会保存更改,但不会
  • 如果更改了.pro文件,请运行qmake并重新构建它
  • 尝试清理、运行qmake并重新构建项目
  • 如果您更改了.pro文件或包含了外部lib或文件,请检查输出日志以查看是否一切正常,有时不是,但仍会编译(然后链接不好或只允许您使用旧的编译版本)
  • 它似乎是在编译代码的最后一个“版本”,而不是出于某些原因和其他原因而应用更改(如果我考虑到其他方面,我将稍后编辑此文章)


    希望对您有所帮助

    您可以尝试一些东西:

  • 检查您打开的exe文件是否与创建的exe文件在同一路径上(您可以通过查看.pro.user文件进行验证)
  • 检查编译时,它是否先保存更改,然后将其编译在一起,否则它可能看起来会保存更改,但不会
  • 如果更改了.pro文件,请运行qmake并重新构建它
  • 尝试清理、运行qmake并重新构建项目
  • 如果您更改了.pro文件或包含了外部lib或文件,请检查输出日志以查看是否一切正常,有时不是,但仍会编译(然后链接不好或只允许您使用旧的编译版本)
  • 它似乎是在编译代码的最后一个“版本”,而不是出于某些原因和其他原因而应用更改(如果我考虑到其他方面,我将稍后编辑此文章)


    希望它有帮助

    我也遇到过这个问题。我可以通过清理(在我的例子中,运行
    catkinclean
    )然后重新构建(
    catkin\u make
    )来解决它

    不幸的是,我还没能找出问题的确切原因,但希望有更了解情况的人有一个想法


    此外,我的开发环境不同(Ubuntu 14.04、Qmake 3.1、Qt 5.9.1、gcc 4.8.4、catkin tools 0.4.4、Qt Creator等),因此显然我的修复程序可能不适用于所有人。

    我也遇到过这个问题。我能够通过清理(在我的情况下运行
    catkin clean
    )然后重新构建它来解决这个问题(
    柳絮制作

    不幸的是,我还没能找出问题的确切原因,但希望有更了解情况的人有一个想法


    此外,我的开发环境也不同(Ubuntu 14.04、Qmake 3.1、Qt 5.9.1、gcc 4.8.4、catkin tools 0.4.4、Qt Creator等)因此,显然我的修复程序可能不适用于所有人。

    修改main.cpp并重新编译这应该会更新您的代码。不确定为什么会发生这种情况,但我添加了一个cout修改main.cpp并重新编译这应该会更新您的代码。不确定为什么会发生这种情况,但我添加了一个cout问题仍然存在于Qt 5.8:

    Qt5.8使用clang,在QtCreator中的OSX下为OSX构建64位,这一问题仍然存在,因此这不是GCC问题

    解决方案:

    我能够通过以下方式使相关编译器正确响应对新添加头文件的更改:

    • 清理项目
    • 运行QMake
    • 重建整个项目
    检查:


    在执行上述操作之前,我检查了项目文件,并确保新文件列在
    标题部分(它是)。尽管如此,Qt不会重建包含
    .h
    文件的文件。

    问题在Qt 5.8下仍然存在:

    Qt5.8使用clang,在QtCreator中的OSX下为OSX构建64位,这一问题仍然存在,因此这不是GCC问题

    解决方案:

    我能够通过以下方式使相关编译器正确响应对新添加头文件的更改:

    • 清理项目
    • 运行QMake
    • 重建整个项目
    检查:

    在执行上述操作之前,我检查