windows - 在 Windows 上使用 MinGW32-make.exe 将环境路径更改为 makefile

标签 windows makefile mingw mingw-w64

我有一个 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/

相关文章:

php - 如何让 shell_exec 在 IIS 6.0 上运行

c++ - 无法链接它刚刚编译的东西

c++ - wWinmain、Unicode 和 Mingw

windows - 直接从dos命令行打印pdf文件

python - 运行程序后窗口立即关闭

c++ - Windows I/O 驱动程序中的主动等待

gcc - 用于 MinGW w64 的 OpenMP?

c - gcc-生成文件 : recipe for target 'all' failed after adding dependency rule

c++ - "/usr/bin/ld: errno: TLS definition in/lib/libc.so.6"在编译一个 fortran 文件

makefile - 如何在 Makefile 中过滤出具有多个条件的文件?