libvirt - 如何在 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-go 包是底层 libvirt.so 库的基于 CGo 的 API。您不能设置 CGO_ENABLED=0 并期望它仍然有效。AFAI,Go 工具链也不允许与 CGo 交叉编译。
推荐阅读
- spring-cloud-aws - 如何使用 IAM 角色将 Spring App 连接到 AWS SNS?
- javascript - 如果添加了新记录,则加载更多记录脚本显示前一组记录中相同的最后一条记录
- testing - 如何测试从子组件触发的自定义事件
- laravel - 当一个表的两列引用另一表的一列时,如何在 Laravel 中使用 JOIN?
- shell - 使用 shell 脚本将数据插入 postgres db
- excel - 通过使用条件/if 语句单击 Excel 中的特定单元格来运行宏
- git - 如何使用 Git 跟踪大型项目并迁移到 Github
- javascript - 使用异步 forEach 循环磁带“测试退出而没有结束”错误
- office365 - 将查询字符串参数传递给 Office 365 word 加载项
- java - spotify-web-api-java 无效的授权码