使用MinGW64编译Makefile时遇CGO_CFLAGS未识别错误求助
解决MinGW64编译Makefile时CGO_CFLAGS未识别的问题
问题原因
Windows CMD/PowerShell不支持类Unix系统中VAR=value command这种前置环境变量的语法,执行Makefile命令时会把CGO_CFLAGS当成独立命令解析,导致报错。
解决方案
方式一:修改Makefile的Windows目标规则
将原规则里的环境变量前置写法,替换为Windows的set命令串联形式。修改后的规则如下:
windows: set CGO_CFLAGS="-I/include" && set CGO_LDFLAGS="-L/lib/Windows -Wl,--enable-stdcall-fixup,-rpath=/lib/Windows -lHCNetSDK" && set GOOS=windows && set CC=x86_64-w64-mingw32-gcc && set CXX=x86_64-w64-mingw32-g++ && go build -ldflags "-s -w" -o build/Windows/magicard-recover.exe src/magicard-recover.go
保存修改后,重新在CMD中执行mingw32-make windows即可。
方式二:使用MinGW的Bash终端执行命令
打开MinGW64自带的Bash终端(开始菜单中通常命名为“MinGW64 Terminal”),进入项目目录后执行:
mingw32-make windows
Bash支持类Unix的环境变量前置语法,可正常解析Makefile中的命令。
内容的提问来源于stack exchange,提问作者user180053
相关产品推荐
相关产品推荐

