我有一个 makefile,我想在 Windows 上用 MinGW 编译一个 DLL。
这个项目我想编译成 32 位和 64 位。
我将 MinGW32 安装到带有 x86 编译器的 C:\MinGW32
和带有 x64 编译器的 C:\MinGW64
。
生成文件根据目标使用一个或另一个路径,但我遇到的问题是我需要在全局环境路径上指定 C:\MinGWxx\bin
,因为它需要一些bin 目录的 DLL。
我尝试了一些解决方案,比如 Specifying path in makefile (GNU make on Windows) , 但它不起作用。
似乎导出在这个版本的操作系统中没有被识别(或者不支持 make)。
我试着把
SET Path=$(PATH_DVL_x86)\bin;$(PATH_DVL_x86)\msys\1.0\bin;${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: ...
...
关于windows - 在 Windows 上使用 MinGW32-make.exe 将环境路径更改为 makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27543074/