修改C语言代码后终端仍反复输出旧版HelloWorld结果怎么办
问题描述
- 最初编写的C程序运行后输出
hello world,修改后的代码如下:
#include <stdio.h> int main() { printf("age is age"); return 0; }
- 终端运行程序时,始终输出旧版本的
hello world,不显示修改后代码的预期输出。
排查与解决
按出现概率排序排查即可:
- 未重新编译,运行的是旧可执行文件
这是该问题最高发的原因:- 命令行手动编译场景:修改源码后必须重新执行编译指令,若源码文件为
test.c,执行gcc test.c -o test完成编译后,再运行./test(Windows系统运行test.exe),不要直接执行之前生成的可执行文件。 - IDE编译场景(VSCode、CLion、Dev-C++等):先执行「清理构建产物」操作,再选择「重新构建(Rebuild)」做全量编译,增量编译偶发无法识别文件改动,不会更新可执行文件。
- 命令行手动编译场景:修改源码后必须重新执行编译指令,若源码文件为
- 编辑的文件和编译的文件不是同一个
核对编辑器中打开的C文件路径,和终端执行编译命令时所在的目录是否一致,避免存在多个同名源码文件,修改了A目录的代码,却一直在编译B目录下的旧文件。 - 旧可执行文件未被覆盖
手动删除之前生成的可执行文件:Linux/macOS执行rm 可执行文件名,Windows直接删除对应exe文件,再重新编译运行即可。
内容的提问来源于stack exchange,提问作者rishu
相关产品推荐
相关产品推荐

