首页 > 解决方案 > 有什么方法可以检测 Windows 批处理文件中的错误?(c++代码编译)

问题描述

我已经编写了 run.bat 文件来编译以及通过 Windows 终端运行我的 c++ 代码。该文件仅包含两个命令:

  1. g++ %1.cpp -o %1.exe

  2. %1.exe

但是如果代码有一些编译时错误,我不知道如何停止执行第二个命令。有没有可用的解决方案?请告诉我...

标签: c++windowsbatch-filecompilation

解决方案


您可能想研究其他构建方式。

如果您有 GCC,那么您很可能也有make命令,并且可以编写生成文件来处理依赖项和规则。

与您的问题最相关的部分是,如果生成文件中的一条规则失败,那么链上更远的规则将不会被执行。


对于问题中的系统,我们可以有一个简单Makefile的这样的:

run: $(PROGRAM).exe
    ./$(PROGRAM).exe

$(PROGRAM).exe: $(PROGRAM).cpp
    g++ -Wall $(PROGRAM).cpp -o $(PROGRAM).exe

然后在终端中运行命令

make run PROGRAM=my_program

make命令将读取Makefile. 如果源文件my_program.cppmy_program.exe(或者如果my_program.exe不存在)更新,那么my_program.cpp将被内置到my_program.exe. 然后my_program.exe会被执行。

请注意,我真的不建议使用这样的“运行”目标。相反,我建议您将构建和运行分开。你可以用命令做到这一点

make PROGRAM=my_program && ./my_program.exe

这与两个单独的命令相同

make PROGRAM=my_program
./my_program.exe

推荐阅读