【问题标题】:How to build libvirt-go for windows on mac如何在 Mac 上为 Windows 构建 libvirt-go
【发布时间】:2021-09-18 12:27:41
【问题描述】:

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


    【解决方案1】:

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

    【讨论】:

    • 那么当我构建一个没有virtlib支持的客户端应用程序时,如何排除virtlib相关文件呢?
    • 您必须在任何使用 libvirt 的源文件中使用 go build 标签才能以某种方式禁用它们
    猜你喜欢
    • 1970-01-01
    • 2011-05-24
    • 2015-11-28
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 2020-08-16
    • 2021-12-01
    • 1970-01-01
    相关资源
    最近更新 更多