likes
comments
collection
share

WINDOWS中的CGO环境搭建

作者站长头像
站长
· 阅读数 39

最近的项目需要在windows下编译CGO程序, 之前只提供linux程序, 对windows上面的配置不是特别清楚, 借此机会

配置记录一下, 开发工具是vscode

C环境:

  1. 首先就是下载msys2,

    www.msys2.org/

    下载之后安装,

    它提供了一个类unix的命令行的环境, 可以帮助我们在windows上面安装一些c的库,

    和manjaro一样使用了pacman工具, 所以换源什么的可以参考manjaro那一套

  2. 安装完成之后继续浏览它的主页, 执行第6条中的命令 , 我给复制出来放在下面

    ! ! ! 执行: pacman -S mingw-w64-ucrt-x86_64-gcc

    这样就安装上了gcc,同时需要安装一下套件,

    ! ! ! 执行: pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain

  3. 打开vscode, 安装C++的扩展,

    安装之后部分版本会弹出新tab页, 让配置C++环境和路径, 我只需要编译CGO, 所以没有配置

  4. 把msys2的指定目录配置到windows环境变量中, C:\msys64\ucrt64\bin, 注意是ucrt64目录下的bin文件夹

到此, C环境就配置完成了

==========================

Go环境:

我已经在windows上面安装了Go了, 所以下面我将讲述如何把windows上面的go, 配置成可以直接在msys2中使用

首先确定windows上面Go的安装位置, 如果默认安装的话, 路径将会是:

C:\Program Files\go\bin

需要转换成unix下的路径, 也就是

/c/Program\ Files/go/bin 

找到自己Go的安装目录之后, 我们就开始配置,

msys2每打开一个命令行窗口, 都会执行~/.bashrc文件, 所以需要修改~/.bashrc文件

  1. 首先先安装一下vim, 方便我们修改.bashrc文件
pacman -S vim
  1. 安装完成之后使用vim打开.bashrc文件, 在最后面加上
export PATH=$PATH:/c/Program\ Files/go/bin:/c/Users/xxx/go/bin

注意, 上面的路径替换为你自己的, 第一个是go的可执行文件夹路径, 第二个是go install命令安装的程序bin路径

  1. 执行
source ~/.bashrc

然后再执行

go env

看到输出go的各项env就是配置成功了

开发

我需要用到的c库是openslide, 在openslide的官网找到了对应的安装命令

pacman -S mingw-w64-x86_64-openslide

执行后, 等待安装完成, 安装的路径是下面两个目录, 可以找到对应的动态链接库和h头文件

/msys64/mingw64/include
/msys64/mingw64/lib

代码如下:

WINDOWS中的CGO环境搭建

然后点击 regenerate cgo definitions Go就会帮助我们生成中间文件, 不会出现大片错误提示

注意

编译和运行, 都需要在msys2的命令行中执行, 尽量使用ucrt64这个命令行

转载自:https://juejin.cn/post/7379446193140580379
评论
请登录