Makefile条件判断中的$(OS)变量是什么?能否提供相关文档?
关于Makefile中$(OS)变量的说明
什么是$(OS)变量
- $(OS)是GNU Make在Windows平台下自动导入的系统环境变量,它的值直接取自Windows系统自身的
OS环境变量,通常固定为Windows_NT(适用于绝大多数Windows版本,包括Win10、Win11及各类服务器系统)。 - 在类Unix系统(如Linux、macOS)中,GNU Make不会自动定义这个变量,因此代码会进入else分支,将
IS_WINDOWS设为0。
相关文档参考
- GNU Make官方手册里,「环境变量」和「Windows专属特性」章节明确提到:在Windows环境运行GNU Make时,会自动加载当前系统的环境变量,其中就包含
OS。 - Windows系统的
OS是内置环境变量,用于标识操作系统类型,相关定义可参考Windows官方文档中关于系统环境变量的说明。
代码示例
ifeq ($(OS), Windows_NT) IS_WINDOWS = 1 else IS_WINDOWS = 0 endif
内容的提问来源于stack exchange,提问作者Intrastellar Explorer
相关产品推荐
相关产品推荐

