go语言模块编译 go语言模块化开发( 二 )


4. 在hello中创建hello.go文件,并输入内容
5. 编译
执行命令: gomobile bind -target=android hello
会生成一个hello.aar文件
6. 导入到android工程
将hello.aar文件放入工程的libs中,并配置build.gradle
在根结点加入:
在dependencies结点下加入依赖:
7. 在Java中测试
【go语言模块编译 go语言模块化开发】 运行后 , 结果会输出 Hello, Android and Gopher
Golang 的静态编译Go 语言和 C 语言的一个很大的区别是,Go 语言只静态编译,做个测试:
一方面是 Go 语言编译后的可执行文件大小比 C 语言的大很多,
另一方面是 C 语言的可执行文件需要依赖 glibc 动态库,
用 ldd 命令可以看出来:
或者直接删除 glibc 动态库,C 可执行程序报错,而 Go 的还能运行:
这时候只有内部命令可以运行,外部命令 , 包括ln甚至最常用的ls命令也不能运行go语言模块编译了:
设置好LD_PRELOAD环境变量之后,ln 命令可以运行 , 但是sudo仍然不能运行
只能靠root用户来重新创建软连接go语言模块编译了:
所以用 sudo 来 rm 文件要小心,还是用root比较好 。如果没有预先留一个打开的root终端 , 登录都登不进去 。
Go 是怎么使用 Go 来编译自身的Go是一个图灵完备的语言
任何图灵完备的语言理论上都可以用来编译自身 。比如c/c++, java, vb, php等等都可以 。
至于怎么编译自身的:
用其它语言比如c++实现一个[Go语言编译器-1]
用Go语言写一个[Go语言编译器-2]
用这个c++实现的[Go语言编译器-1]编译第2步里面说的Go语言写的[Go语言编译器-2]
用第3步得到的[Go语言编译器-2],再编译一次第2步里面说的[Go语言编译器-2]的源码 。
OK,现在有一个Go语言实现的编译器了,最开始那个c++写的编译器没用了,可以扔掉不要了 。以后就不停的优化使用这个Go语言实现的自身的编译器就行了 。
windows 怎么编译 go语言1、解压压缩包到go工作目录go语言模块编译,如解压到E:\opensource\go\gogo语言模块编译,解压后的目录结构如下go语言模块编译:
E:\opensource\go\go
├─api
├─bin
│├─go.exe
│├─godoc.exe
│└─gofmt.exe
├─doc
├─include
├─lib
├─misc
├─pkg
├─src
└─test
2、增加环境变量GOROOT,取值为上面的go工作目录
3、Path环境变量中添加";%GOROOT%\bin",以便能够直接调用go命令来编译go代码,至此go编译环境就配置好go语言模块编译了
注:如果不想手动设置系统环境变量,也可下载go启动环境批处理附件,
修改goenv.bat文件中的GOROOT值为上面的go工作目录后直接双击该bat文件,go编译环境变量即设置完成 。
4、测试go编译环境 , 启动一个cmd窗口 , 直接输入go,看到下面的提示就是搭建成功go语言模块编译了
E:\opensource\go\gogo
Go is a tool for managing Go source code.
Usage:
go command [arguments]
The commands are:
buildcompile packages and dependencies
cleanremove object files
docrun godoc on package sources
envprint Go environment information
fixrun go tool fix on packages
fmtrun gofmt on package sources
getdownload and install packages and dependencies
installcompile and install packages and dependencies
listlist packages
runcompile and run Go program
testtest packages
toolrun specified go tool
versionprint Go version
vetrun go tool vet on packages
Use "go help [command]" for more information about a command.

推荐阅读