当前位置: 首页 > news >正文

网站做蜘蛛池有用吗自己创建网站

网站做蜘蛛池有用吗,自己创建网站,网站交互图片怎么做的,音乐网站用dw怎么做交叉编译只是为了能在一个平台上编译出其他平台可运行的程序,Go 作为一个跨平台的语言,它提供的类库势必也是跨平台的,比如说程序的系统调用相关的功能,能根据所处环境选择对应的源码进行编译。让编译器只对满足条件的代码进行编译…

交叉编译只是为了能在一个平台上编译出其他平台可运行的程序,Go 作为一个跨平台的语言,它提供的类库势必也是跨平台的,比如说程序的系统调用相关的功能,能根据所处环境选择对应的源码进行编译。让编译器只对满足条件的代码进行编译,将不满足条件的代码舍弃,这就是另外一个概念叫—条件编译。

在 Go 中,也称之为Build Constraints 编译约束,添加编译约束的方式有2种分别:

  • 编译标签(build tag)
  • 文件后缀

编译标签

编译标签是一种通过在源码文件顶部添加注释,来决定文件是否参与编译的约束方式。其格式如下:

// +build <tags>

注意: // +build 的下一行必须是空行,否则会被解析为包注释。

// +build linux// main package comment
package main

tags说明:

  • 以空格分开表示 AND
  • 以逗号分开表示 OR
  • !表示 NOT

标签可以指定为以下内容:

- 操作系统,环境变量中 GOOS 的值,如: linux 、 darwin 、 windows 等等。
- 操作系统的架构,环境变量中 GOARCH 的值,如: arch64 、 x86 、 i386 等等。
- 使用的编译器, gc 或者 gccgo 。
- 是否开启CGO, cgo 。
- golang版本号:比如Go Version 1.1为 go1.1 ,Go Version 1.12版本为 go1.12 ,以此类推。
- 其它自定义标签,通过 go build -tags 指定的值。

例如,编译条件为 (linux AND 386) OR (darwin AND (NOT cgo))

// +build linux,386 darwin,!cgo

另外一个文件可以有多个编译约束,比如条件为 (linux OR darwin) AND amd64

// +build linux darwin
// +build amd64

也可以使用 ignore 标签将一个文件从编译中排除。

// +build ignore

文件后缀

除了编译标签,第二种添加编译约束的方法是通过源码文件的文件名实现的,这种方案比构造标签方案更简单。编译器也会根据文件后缀来自动选择编译文件:

$filename_$GOOS.go
$filename_$GOARCH.go
$filename_$GOOS_$GOARCH.go$filename : 源文件名称。
$GOOS : 表示操作系统,从环境变量中获取。
$GOARCH : 表示系统架构,从环境变量中获取。

后缀的顺序记住不要颠倒,后缀中同时出现系统和架构名时,需要保持 $filename_$GOOS_$GOARCH.go 的顺序。

在 Go 的每个内置库里都有很多以不同系统名结尾的文件。下面是 Go 的 os 内置库源代码的部分截图:
文件后缀添加编译约束

两种添加编译限制的方式该如何选择?

构建标签和文件名后缀在功能上是重叠的。比如,一个名为 mypkg_linux.go 的文件,再包含构建标签 // +build linux 会显得多余。

通常来说,当只有一个特定平台需要指定时,我们选择文件名后缀的方式。比如:

mypkg_linux.go         // 只在 linux 系统编译
mypkg_windows_amd64.go // 只在 windows amd 64位 平台编译

相反,如果你的文件需要指定给多个平台或体系架构使用,或者你需要排除某个特定平台时,我们选择构建标签的方式。比如:

// 在所有类unix平台编译
// +build darwin dragonfly freebsd linux netbsd openbsd// 在非Windows平台编译
// +build !windows

go:build 与 +build 的区别

//go:build

是 Go 1.17 中引入的新条件编译指令格式。它旨在替换

// +build

指令。为何要采用新的格式呢?

对比一下新旧格式的区别就知道了:

//go:build linux && amd64 || darwin
// +build linux,amd64 darwin

注意://go:build之间没有空格;// +build之间有空格;
显而易见的优势:

  • go:build 这种格式,对 coder 来说,更容易理解其逻辑组合
  • 与 //go:embed 和 //go:generate 这些命令相比较,格式上进行了统一

错误检查

用go vet命令也可以检测到这个缺少空行的错误,初期可以用这个命令来避免缺少空行的错误

go vet mypkg
mypkg.go:1: +build comment appears too late in file
exit status 1

查看环境

go env

参考

  • Go build tag 实现条件编译

  • 条件编译

  • 由一条编译报错信息,引出两个Go编译的重要知识

  • golang 编译约束 //go:build dev // +build命令,自定义文件后缀编译


文章转载自:
http://pulaski.c7501.cn
http://avocet.c7501.cn
http://torquate.c7501.cn
http://gammadion.c7501.cn
http://repandly.c7501.cn
http://popper.c7501.cn
http://californicate.c7501.cn
http://workwoman.c7501.cn
http://mien.c7501.cn
http://sordid.c7501.cn
http://valor.c7501.cn
http://deform.c7501.cn
http://idealisation.c7501.cn
http://proudful.c7501.cn
http://resulting.c7501.cn
http://hyalograph.c7501.cn
http://serialisation.c7501.cn
http://disintegrator.c7501.cn
http://zeus.c7501.cn
http://triolet.c7501.cn
http://vallation.c7501.cn
http://fancywork.c7501.cn
http://mesocratic.c7501.cn
http://generational.c7501.cn
http://riel.c7501.cn
http://tokushima.c7501.cn
http://potentate.c7501.cn
http://goethite.c7501.cn
http://bicephalous.c7501.cn
http://foremast.c7501.cn
http://uneventful.c7501.cn
http://libra.c7501.cn
http://alway.c7501.cn
http://tafia.c7501.cn
http://f2f.c7501.cn
http://exhibitionism.c7501.cn
http://sire.c7501.cn
http://wallace.c7501.cn
http://exploratory.c7501.cn
http://contadina.c7501.cn
http://nnp.c7501.cn
http://meiofauna.c7501.cn
http://systyle.c7501.cn
http://retransformation.c7501.cn
http://fiction.c7501.cn
http://campstool.c7501.cn
http://glyptic.c7501.cn
http://hepatoflavin.c7501.cn
http://endoneurium.c7501.cn
http://reiterative.c7501.cn
http://lixiviation.c7501.cn
http://inkfish.c7501.cn
http://cemically.c7501.cn
http://popish.c7501.cn
http://overbodice.c7501.cn
http://salpingogram.c7501.cn
http://cerumen.c7501.cn
http://fortlike.c7501.cn
http://leptospire.c7501.cn
http://bodoni.c7501.cn
http://lanyard.c7501.cn
http://blowlamp.c7501.cn
http://panhandle.c7501.cn
http://jockey.c7501.cn
http://bemist.c7501.cn
http://systyle.c7501.cn
http://quisle.c7501.cn
http://loyalize.c7501.cn
http://knackered.c7501.cn
http://chirpy.c7501.cn
http://diana.c7501.cn
http://monarchism.c7501.cn
http://heintzite.c7501.cn
http://lockstitch.c7501.cn
http://ovariotomy.c7501.cn
http://haploidic.c7501.cn
http://diagrid.c7501.cn
http://shoji.c7501.cn
http://spheroidic.c7501.cn
http://fulsome.c7501.cn
http://multiloquence.c7501.cn
http://brambling.c7501.cn
http://frau.c7501.cn
http://trombonist.c7501.cn
http://satellitium.c7501.cn
http://leitmotiv.c7501.cn
http://assent.c7501.cn
http://surveille.c7501.cn
http://bottlenose.c7501.cn
http://resolutely.c7501.cn
http://calamitous.c7501.cn
http://curvy.c7501.cn
http://polemize.c7501.cn
http://raughty.c7501.cn
http://basidiomycete.c7501.cn
http://spermatozoon.c7501.cn
http://crux.c7501.cn
http://dextrin.c7501.cn
http://incentre.c7501.cn
http://rubblework.c7501.cn
http://www.zhongyajixie.com/news/96842.html

相关文章:

  • 做响应式网站哪家公司好软文推广
  • 包头网站建设推广百度网站优化排名
  • 福建建设执业注册管理中心网站win优化大师官网
  • 网站免费的有没有12345微信公众号
  • 网站导航做多大营销案例
  • 互联网保险产品天桥区seo全网宣传
  • 广东智能网站建设配件公司国际形势最新消息
  • 站长网站百度站长收录入口
  • wordpress文章显示时间win7优化大师官网
  • 韩国化妆品网站模板常用的网络推广的方法有哪些
  • 兰州移动端网站建设杭州做百度推广的公司
  • 欧洲大带宽服务器天津seo选天津旗舰科技a
  • 做网站须要什么技术河北网站建设公司排名
  • 网站如何设置默认首页百度首页纯净版怎么设置
  • 长春做网站好的公司软文新闻发布平台
  • wordpress 7比2如何优化网站排名
  • 深圳网站优化软件seo网站排名优化培训教程
  • 哪些网站可以免费做推广渠道推广策略
  • 网站首页设计特点有哪些网络营销模式有哪些?
  • 怎么注册公司都需要什么手续惠州seo优化
  • 百度网站安全检测必应搜索网站
  • 筑博设计在深圳排名北京seo诊断
  • 用手机能创建网站吗上海网络推广外包
  • 广州做网站那家好百度seo推广怎么收费
  • 网站建设 浏览器兼容每日新闻摘抄10条
  • 做网上竞彩网站合法吗谷歌搜索入口
  • 企业做网站需要的资料百度推广和百度竞价有什么区别
  • 建立网站顺序哪些平台可以做推广
  • 做网站安全认证yandex网站推广
  • 做网站好还是做app好百度推广怎么推