是否可以从 Go 应用程序检测是否启用了 CGo?

我的 Go 应用程序可以与 MySQL、Postgres 和 SQLite 一起使用。在第一次启动时,它会询问应该使用什么数据库。

SQLite 仅适用于 CGo。根据是否启用,SQLite 应该显示在支持的数据库列表中。

是否可以从 Go 应用程序中检测是否启用了 CGo?


慕姐4208626
浏览 169回答 1
1回答

大话西游666

使用构建约束来检测 CGO。将这两个文件添加到包中:cgotrue.go:// +build cgopackage yourPackageNameHereconst cgoEnabled = truecgofalse.go:// +build !cgopackage yourPackageNameHereconst cgoEnabled = false仅编译其中一个文件。检查cgoEnabledconst 以确定 CGO 是否已启用。另一种选择是将以下内容添加到始终编译的文件中:var drivers []string{ "MySQL", "Postgres"}这是一个仅限 CGO 的文件:// +build cgopackage yourPackageNameHerefunc init() {      drivers = append(drivers, "SQLite")}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go