如何在 mac 上为 windows 构建 libvirt-go

How to build libvirt-go for windows on mac

我安装了 libs 并且可以 run/debug idea IDE 中的 libvirt 相关代码,但是在 MacBook 运行 下面的构建命令之后

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o zagent.exe cmd/test/main.go

我得到了

cmd/test/main.go:11:22: undefined: libvirt.NewConnect

感谢您的关注,代码如下:

package main

import (
    _logUtils "github.com/easysoft/zagent/internal/pkg/lib/log"
    "github.com/libvirt/libvirt-go"
)

func main() {
    connStr := "***"

    LibvirtConn, err := libvirt.NewConnect(connStr)
    if err != nil {
        _logUtils.Errorf(err.Error())
        return
    }

    active, err := LibvirtConn.IsAlive()
    if err != nil {
        _logUtils.Errorf(err.Error())
        return
    }
    if !active {
        _logUtils.Errorf("not active")
    }
}

libvirt-go 包是一个基于 API 到底层 libvirt.so 库的 CGo。您不能设置 CGO_ENABLED=0 并期望它仍然有效。 AFAI,Go 工具链也不允许与 CGo 交叉编译。