Golang中Cgo报错:执行gcc时找不到可执行文件(%PATH%中无gcc)
Golang中Cgo报错:执行gcc时找不到可执行文件(%PATH%中无gcc)
当我运行 go build 时:
github.com/minvws/nl-covid19-testvac-qr-core/issuer
cgo: exec gcc: exec: “gcc”: executable file not found in %PATH%
我已经安装了 MinGW 和 TDM-GCC-64 并设置了环境变量,但不起作用!!!
4 回复
你所说的“没效果”是指仍然遇到相同的错误吗?你是否尝试过重启系统,以确保程序能“识别”你新设置的PATH环境变量?
更多关于Golang中Cgo报错:执行gcc时找不到可执行文件(%PATH%中无gcc)的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
是的,我重启了。
另一个错误。
执行 go build 命令:
github.com/minvws/nl-covid19-testvac-qr-core/issuer
cgo: 无法将 $WORK\b106_cgo_.o 解析为 ELF、Mach-O、PE 或 XCOFF 格式
在Windows上使用Cgo需要正确配置GCC环境。以下是解决方案:
1. 验证GCC安装
首先检查GCC是否正确安装:
# 在命令提示符中运行
gcc --version
2. 设置环境变量
确保GCC的bin目录已添加到PATH:
# 对于TDM-GCC-64,通常路径是:
# C:\TDM-GCC-64\bin
# 在PowerShell中临时设置
$env:Path += ";C:\TDM-GCC-64\bin"
# 永久设置(管理员权限运行):
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";C:\TDM-GCC-64\bin", "Machine")
3. 使用MSYS2替代方案
如果TDM-GCC无效,建议使用MSYS2:
# 安装MSYS2后,在MSYS2终端中:
pacman -S mingw-w64-x86_64-gcc
# 然后设置PATH包含:
# C:\msys64\mingw64\bin
4. 在Go中指定C编译器
可以在Go构建时指定编译器:
# 设置环境变量
set CC=gcc
set CGO_ENABLED=1
# 或者使用完整路径
set CC=C:\TDM-GCC-64\bin\gcc.exe
go build
5. 验证配置
创建测试文件验证Cgo是否正常工作:
// test_cgo.go
package main
// #include <stdio.h>
// void hello() {
// printf("Hello from C!\n");
// }
import "C"
func main() {
C.hello()
}
运行:
go run test_cgo.go
6. 检查MinGW安装
确保安装的是完整版MinGW,包含gcc-core组件。重新安装时选择:
- mingw32-gcc-bin
- mingw32-gcc-g+±bin
安装后重启命令行工具使环境变量生效。


