一方面是 Go 语言编译后的可执行文件大小比 C 语言的大很多,
另一方面是 C 语言的可执行文件需要依赖 glibc 动态库,
用 ldd 命令可以看出来:
或者直接删除 glibc 动态库 , C 可执行程序报错,而 Go 的还能运行:
这时候只有内部命令可以运行 , 外部命令,包括ln甚至最常用的ls命令也不能运行了:
设置好LD_PRELOAD环境变量之后, ln 命令可以运行,但是sudo仍然不能运行
只能靠root用户来重新创建软连接了:
所以用 sudo 来 rm 文件要小心,还是用root比较好 。如果没有预先留一个打开的root终端,登录都登不进去 。
golang项目中使用条件编译golang中没有类似C语言中条件编译的写法,比如在C代码中可以使用如下语法做一些条件编译,结合宏定义来使用可以实现诸如按需编译release和debug版本代码的需求
build tags 是通过代码注释的形式实现的,要写在文件的最顶端;
go build指令在编译项目的时候会检查每一个文件的build tags,用来决定是编译还是跳过该文件
build tags遵循以下规则
示例go语言的编译方法:
约束此文件只能在支持kqueue的BSD系统上编译
一个文件可能包含多行条件编译注释,比如go语言的编译方法:
约束该文件在linux/386 或 darwin/386平台编译
需要注意的点
正确的写法如下:
编译方法:
具有_$GOOS.go后缀的go文件在编译的时候会根据当前平台来判断是否将该文件导入并编译;同样适用于处理器架构判断 _$GOARCH.go 。
两者可以结合起来使用,形式为: _$GOOS_$GOARCH.go
示例:
文件名必须提供 , 如果只由后缀的文件名会被编译器忽略,比如:
这两个文件会被编译器忽略,因为以下划线开头的文件都会被忽略
【go语言的编译方法 go语言编程】go语言的编译方法的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于go语言编程、go语言的编译方法的信息别忘了在本站进行查找喔 。
推荐阅读
- css字体图标大小,css中字体大小
- ios开发发布证书过期,ios开发证书下载
- 玩虚拟机分区要多大空间,虚拟机需要分盘吗
- ppt翻页箭头怎么删掉,ppt里的翻页动画怎么删除
- linux多文件复制命令 linux如何复制多个文件到一个目录
- 什么手机游戏很像电脑游戏,跟电脑一样的手机
- 用语音操控的休闲游戏手机,用语音操控的休闲游戏手机软件
- 宝藏软件app游戏恋爱养成,恋爱养成 手机游戏
- go语言百度网盘 go语言教程pdf 百度云