首页 > 解决方案 > 如何在 Mac 上为 Windows 构建 libvirt-go

问题描述

我安装了库并且可以在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

解决方案


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


推荐阅读