我创建了以下bash构建脚本文件:
BLD_INCLUDE="-I..source/module1 -I..source/module2"
SRC_MOD1="$(find ../source/module1 -name '*.c')"
SRC_MOD2="$(find ../source/module2 -name '*.c')"
BLD_SOURCES="../source/program.c $SRC_MOD1 $SRC_MOD2"
BLD_LINKER="" #if there is any need of linker - irrelevant here
gcc $BLD_FLAGS $BLD_INCLUDE -o outputobject $BLD_SOURCES $BLD_LINKER
我正在构建这样的因为我需要编译很多文件。
问题是,当使用gcc执行多个文件时,如上所述,如果其中一个文件的编译失败,它会提示错误以及“编译终止”,然后继续执行其他文件。
我想要的行为是,即使其中一个文件无法编译,整个编译也会停止。
也就是说,在我的情况下:假设缺少一个头文件。现在gcc尝试编译第一个.c
,发现缺少头文件,提示
致命错误:文件丢失错误 编译终止。
然后继续执行其他.c
个文件。由于头文件总是丢失,它会继续给我这个错误并继续执行。
我希望这个构建脚本在编译失败时立即终止,即使是其中一个文件。
编辑:不是Stop GCC on error with multiple files compilation的副本,它源于这个问题本身(阅读评论)。这个问题甚至可以追溯到这一点。