mingw制作文件指南mingw32制作

guide to mingw make files mingw32-make

本文关键字:mingw32 制作 文件 mingw      更新时间:2023-10-16

我是一名C++程序员,在Linux上有GCC的经验。我想在Windows中开发一个应用程序,所以我需要一个完整的mingw-make文件、变量和mingw32-make指南。有谁能介绍这方面的资源吗?

mingw32-make只是GNU make的预构建版本,因此http://www.gnu.org/software/make/manual/应该拥有所有您需要的信息。

我遇到的主要区别是mingw32-make将使用windows PATH。因此,如果您尝试从gitbash运行它,它的行为将不会像您期望的那样(即,它会在您不期望的时候调用bat脚本,垫片也不太起作用)。

设置SHELL := /bin/bash或类似的东西不会有任何效果(您可以通过运行make -d来调试),但您仍然可以通过设置SHELL := bash.exe使其使用bash而不是sh。但这并不能解决windows的PATH问题。

然而,我注意到的是,如果我额外设置.SHELLFLAGS := -euo pipefail -c,那么它在gitbash中突然表现正常,就好像它开始使用类似Unix的路径一样(如果有人能确切地确认/解释原因,那就太好了)。

因此,我在Makefile中得到了以下内容:

ifeq ($(OS),Windows_NT)
    SHELL := bash.exe
else
    SHELL := /usr/bin/env bash
endif
.SHELLFLAGS := -eo pipefail -c

有了这个设置,它在gitbash中的行为似乎很正常,就像在Linux上一样。