写完代码后,最让人紧张的时刻莫过于按下“编译”按钮。这时候屏幕一闪,一堆文字刷过,你可能会懵:到底编译成功没有?其实,判断是否成功编译并不复杂,关键看几个明显信号。
看命令行有没有错误提示
如果你是在终端或命令行里编译,比如用 gcc 编译 C 程序,成功的时候通常不会啰嗦,干干净净地回到下一行命令提示符。比如你输入:
gcc hello.c -o hello
如果什么都没输出,直接出现新的命令行等待输入,那大概率是成了。但要是看到满屏红色字,或者写着 error: 开头的信息,比如 undefined reference 或 syntax error,那就说明出问题了,编译没通过。
检查有没有生成可执行文件
编译成功最实在的证据,就是生成了目标文件。比如上面的例子,编译完成后应该出现一个叫 hello 的可执行文件(在 Windows 上可能是 hello.exe)。你可以用 ls(Linux/macOS)或 dir(Windows)看看目录里有没有这个文件。
如果文件出来了,并且能双击运行,或者在命令行输入 ./hello 能正常打印结果,那基本可以确定编译成功了。
IDE 里的小图标和颜色提示
用 Visual Studio、Code::Blocks 或 Dev-C++ 这类集成开发环境时,界面会更友好。编译结束后,底部的输出窗口会显示“Build succeeded”或者“0 errors, 0 warnings”这样的消息。如果看到绿色对勾或者进度条走完没报错,就说明没问题。
相反,如果有红色叉号,或者警告(warning)和错误(error)计数不为零,就得点进去一条条看,修改对应代码。
留意警告信息
有时候编译器虽然没报错,但会输出一堆 warning。比如“variable ‘x’ is unused”这种。这类信息不会阻止程序生成,但可能埋着隐患。有些人觉得“能跑就行”,可长期来看,清掉警告能让代码更健壮。所以别完全忽略它们,尤其是项目变大以后。
动手试试运行结果
最终检验编译是否成功的标准,是程序能不能按预期工作。哪怕编译通过、文件生成了,也有可能逻辑出错。比如你写了个计算器,编译顺利,但加法算成减法,那显然还有问题。所以编译只是第一步,运行测试才是闭环。