在Windows上使用MinGW32-make.exe将环境path更改为生成文件

我有一个makefile,我想在Windows上用MinGW编译DLL。

这个项目我想编译成32位和64位。

我将MinGW32安装到C:\MinGW32与x86编译器和C:\MinGW64与x64编译器。

makefile根据目标使用一个或另一个path,但是我的问题是我需要在全局环境path上指定C:\MinGWxx\bin ,因为它需要bin目录的一些DLL。

我尝试了一些解决scheme,如makefile中的指定path(在Windows上的GNU make) ,但它不起作用。

看来,这个版本的操作系统(或不支持make)出口不会重新出现。

我试图把

 SET Path=$(PATH_DVL_x86)\bin;$(PATH_DVL_x86)\msys\1.0\bin;${PATH} 

这不会返回错误,但在环境path上不会更改。

您将需要使用.ONESHELL特殊目标强制配方在一个shell中运行所有命令:

 .ONESHELL: .PHONY: all anotherRule all: @ECHO OFF ECHO %PATH% # Will echo your PATH environment variable content SET PATH=%PATH%;toto ECHO %PATH% # Will echo your PATH + ";toto" appended to it anotherRule: @ECHO OFF ECHO %PATH% # Will echo your PATH without ";toto", as expected 

现在很容易编写特定的规则来使用不同的编译器:

 all-x86: CC := mingw32-gcc all-x86: ... ... all-64: CC := mingw64-gcc all-64: ... ...