我需要在 linux 和 windows 中使用不同的包在 windows 上构建相同的文件,我需要import github.com/hashicorp/go-syslog在 linux 上import log/syslog和文件中的内部代码我必须使用syslog.ALERT或gsyslog.ALERT取决于 os. 是否存在于Go诸如宏之C++类的东西中,#ifdef以便我可以选择基于标志构建的内容?如何在没有相同文件的情况下实现这一点,以根据操作系统构建不同的内容?
2 回答
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
这就是构建标签的用途:
构建约束,也称为构建标记,是开始的行注释
// +build它列出了文件应包含在包中的条件。约束可以出现在任何类型的源文件中(不仅仅是 Go),但它们必须出现在文件顶部附近,前面只能有空行和其他行注释。这些规则意味着在 Go 文件中,构建约束必须出现在 package 子句之前。
在运行时区分 OS/arch 的另一种方法是使用运行时的GOOS 和 GOARCH 常量:
GOARCH 是运行程序的架构目标:386、amd64 或 arm。
GOOS 是运行程序的操作系统目标:darwin、freebsd、linux 等之一。
- 2 回答
- 0 关注
- 440 浏览
添加回答
举报
0/150
提交
取消