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


可能是你重启前的尝试留下了一些构建错误的文件。我不知道那个 github.com/minvws/nl-covid19-testvac-qr-core/issuer 包是否有清理脚本之类的工具,但如果没有,也许可以尝试将源代码重新下载到一个新文件夹并重新构建。

是的,我重启了。

另一个错误。

执行 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

安装后重启命令行工具使环境变量生效。

回到顶部