type
Post
status
Published
slug
2022/10/18/1666087321618
summary
tags
GO
Windows
开发
category
Windows
icon
password
new update day
Property
Oct 22, 2023 01:31 PM
created days
Last edited time
Oct 22, 2023 01:31 PM
要使用 CGO 特性,需要安装 C/C++ 构建工具链,在 macOS 和 Linux 下是要安装 GCC,在 windows 下是需要安装 MinGW 工具。同时需要保证环境变量
CGO_ENABLED
被设置为 1,这表示 CGO 是被启用的状态。在本地构建时 CGO_ENABLED
默认是启用的,当交叉构建时 CGO 默认是禁止的。比如要交叉构建 ARM 环境运行的 Go 程序,需要手工设置好 C/C++ 交叉构建的工具链,同时开启 CGO_ENABLED
环境变量。然后通过 import "C"
语句启用 CGO 特性。如果没有安装对应的 CGO 运行时环境、则在运行的时候会引发如下错误。exec: “gcc”: executable file not found in %PATH%
MinGW,又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件、库和可执行文件。 另有可用于产生32位及64位Windows可执行文件的MinGW-w64项目,是从原本MinGW产生的分支。如今已经独立发展。
安装 MingW 有好多种方式、在经历过多次不成功的尝试之后、在这里记录一下使用预编译文件的快捷安装方式。
1. 下载预编译文件
导航至
MSVCRT runtime
,选择你需要的版本进行下载。
2. 解压压缩包,修改 PATH 环境变量
将解压后的文件夹路径添加到你的 PATH 环境变量里面,可以是用户级别的、也可以是系统级别的(看你需求)

3. 这个时候就可以进行一些 CGO 特性的编译测试了
就比如下面的🌰、你可以进行编译运行测试、如果不出意外,会正常运行
package main /* #include <stdio.h> void printint(int v) { printf("printint: %d\\n", v); } */ import "C" func main() { v := 42 C.printint(C.int(v)) }
欢迎加入“喵星计算机技术研究院”,原创技术文章第一时间推送。

- 作者:tangcuyu
- 链接:https://expoli.tech/articles/2022/10/18/1666087321618
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章