go语言编译 go语言编译成exe( 二 )


如下为一个示例程序,当运行在任何支持的带板载LED的主板上时,则会点亮内置LED 。
上述程序可以在单片机、Adafruit ItsyBitsy M0微控制器或任何支持的带内置LED的板上进行编译和不需要修改的运行,只要设置正确的TinyGo编译器目标即可 。例如,设置如下目标可以编译和点亮 单片机 。
项目概述
TinyGo项目旨在将Go语言引入到具有单进程或核心的微控制器和小系统 。TinyGo类似于emgo,但主要的区别在于作者想要保留Go内存模型 。另一个区别在于TinyGo在内部使用LLVM,因而可以获得更小更高效的代码以及更高的灵活性 。
创建TinyGo项目的初衷是 , 如果Python可以在微控制器上运行,Go语言当然也应该能够在更低级微设备上运行 。
支持设备
你可以为微控制器、WebAssembly和Linux编译TinyGo程序 。目前 , TinyGo支持以下85种微处理器板 。
更多技术细节请参阅原项目 。
Go 是怎么使用 Go 来编译自身的Go是一个图灵完备的语言
任何图灵完备的语言理论上都可以用来编译自身 。比如c/c++, java, vb, php等等都可以 。
至于怎么编译自身的go语言编译:
用其它语言比如c++实现一个[Go语言编译器-1]
用Go语言写一个[Go语言编译器-2]
用这个c++实现的[Go语言编译器-1]编译第2步里面说的Go语言写的[Go语言编译器-2]
用第3步得到的[Go语言编译器-2]go语言编译 , 再编译一次第2步里面说的[Go语言编译器-2]的源码 。
OKgo语言编译,现在有一个Go语言实现的编译器go语言编译了go语言编译 , 最开始那个c++写的编译器没用了,可以扔掉不要了 。以后就不停的优化使用这个Go语言实现的自身的编译器就行了 。
Golang 的静态编译Go 语言和 C 语言的一个很大的区别是,Go 语言只静态编译 , 做个测试:
一方面是 Go 语言编译后的可执行文件大小比 C 语言的大很多,
另一方面是 C 语言的可执行文件需要依赖 glibc 动态库,
用 ldd 命令可以看出来:
或者直接删除 glibc 动态库,C 可执行程序报错,而 Go 的还能运行:
这时候只有内部命令可以运行,外部命令,包括ln甚至最常用的ls命令也不能运行了:
设置好LD_PRELOAD环境变量之后,ln 命令可以运行,但是sudo仍然不能运行
只能靠root用户来重新创建软连接了:
所以用 sudo 来 rm 文件要小心,还是用root比较好 。如果没有预先留一个打开的root终端,登录都登不进去 。
【go语言编译 go语言编译成exe】关于go语言编译和go语言编译成exe的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读