go语言封装exe go http封装

Go语言的跨平台能力到底有多强?看完你就知道了对比于其他语言的程序 , Go语言的跨平台能力是真的强,拿.Net和JAVA来说吧,.Net在.Net core出现之前是不能跨平台的,只能在windows上编译运行,即使是.net core出现以后,跨平台的程序也是相当的麻烦 。而java虽然一直都可以跨平台,但是运行JAVA程序的机器上也必须要有JAVA程序运行环境JRE 。而相对于Go程序,跨平台就简单的多了,只需要在编译指定目标程序运行的架构和环境即可编译出指定操作系统和架构的程序 。
以上是指定了go的环境变量后执行的go build命令进行目标程序的构建,这种方式会一直生效的,如果不让他一直生效,可以在构建的时候临时指定环境变量,下面以window的环境为例,来介绍临时指定环境变量的方式构建可以在Linux环境下运行的可执行程序:
可以根据不同的架构和操作系统将其编写为不同的.bat的可执行文件放置在程序的根目录,Linux的和MAC的也一样编写成脚本文件放置在程序的根目录,这样在构建的时候就不用再敲命令了 , 直接运行脚本就可以了 。
Java程序编译打包后为war包或者是java包,必须执行java -jar 命令或者将其放置到tomcat的指定目录下,运行tomcat程序 。而Go语言编写的程序最终为可执行的文件(window下编译出的是.exe的可执行文件),只需要将其赋予可执行的权限就可以直接运行了 。
构建JAVA程序的镜像需要指定java的基础镜像,否则就需要在镜像中安装java的运行环境了,下面展示的是构建的一个JAVA程序的镜像,构建出来镜像的体积相对比较大
而Go程序制作出的镜像就不需要安装任何的依赖环境,因为他在打包的时候就已经将依赖的包一块打包到一起了
拿着这个镜像就可以到处运行了 。
通过对比我们可以发现,如果没有之前的技术和业务的积累,重新开发一个新的项目,使用go去开发无疑是最容易上手的,所以现在很多公司都使用go进行开发,也逐渐将其他语言的项目逐步的用go语言进行改造 。其实用什么语言不重要 , 合适的才重要,开发项目在选择语言的时候也会综合多方面来考虑选择合适的语言和架构,毕竟很多公司都不是搞研究的,都需要项目来赚钱,所以开发的速度、客户的满意度、项目交付的时间才是驱动公司技术的主要因素 。
我们个人也应该不断完善自己的技术栈,不应该太依靠某种语言,最重要的还是自己的架构思想和底层架构知识 , 只有掌握了这些才能够不被 社会 和公司“优化” 。
go语言源码生成exe文件用go语言go语言封装exe的编译器编译 。
go-windowsgo语言封装exe的原始下载地址已经被 墙
如何安装Go语言安装包go语言作为google的一个主推语言,最近很多人都在研究 , 也花了一点时间对他的安装进行了测试,本人使用Sublime Text 2GoSublimegocode
顾名思义首先是安装Go,这里有很详细的安装说明, 或者(golang.org自己去找hosts),官方已经支持Windows版本
下载解压配置环境变量
“环境变量”(我的电脑-高级系统设置-环境变量),在系统变量的标签下,依次新建编辑如下几个键值对:
(1). 新建 变量名:GOBIN 变量值 :c:\go\bin
(2). 新建 变量名:GOARCH 变量值:386
(3). 新建 变量名:GOOS 变量值:windows
(4). 新建 变量名: GOROOT 变量值:c:\go
(5). 编辑 Path 在Path的变量值的最后加上 %GOBIN%
1. 下载 Sublime Text 2,地址如下:
2. 解压以后,双击 sublime_text,就可以使用 Sublime Text 2 了 。
破解:
用 WinHex 编辑 sublime_text_backup.exe 文件, 跳到 000CBB70那一行,将该行的 8AC3修改为 B0 01 然后保存
破解注册成功
3. 安装 Package Control,在打开 Sublime Text 2以后,按下快捷键 Ctrl`,打开命令窗行(具体在view——show Console),并回车:
import urllib2,os; pf=’Package Control.sublime-package’; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),’wb’).write(urllib2.urlopen(‘’ pf.replace(‘ ‘,’ ′)).read()); print ‘Please restart Sublime Text to finish installation’
4. 重启Sublime Text 2后,就可以发现在 Preferences菜单下 , 多出一个菜单项 Package Control 。
5.现在安装GoSublime插件了,按住Ctrl Shilft p会弹出一个对话框输入install回车弹出一个安装包的对话框
同上输入GoSublime选择GoSublime回车
本机已经安装所以没有出现选项,输入Go build选中回车(这个属于可?。?
到此GoSublime安装成功
6.下面安装gocode ,
首安装 Git-1.7.11-preview20120710 。
打开控制台,输入以下内容:
go get github.com/nsf/gocode
go install github.com/nsf/gocode
go get github.com/DisposaBoy/MarGo
go install github.com/DisposaBoy/MarGo
也可以去github下载(要安装google的git版本管理工具)
安装完成后,我们可以在 go/bin 目录下,发现多出了个 gocode 文件 。(一定要放在bin目录下)
7. 修改GoSublime配置:在 Preferences菜单下 , 找到Package Settings,然后找到 GoSublime,再往下找到 Settings – Default 。再打开的文件中,添加如下配置,并保存:
"env": {"path":"c:/go/bin;" },
好了,到目前为止,开发环境搭建完成 。
下面可以自由编程了 。呵呵 。
按下快捷键 Ctrlb 界面下方会出现如下界面:
好了,到现在,开发环境就搭建完毕了 。
如下是内容我这边没有使用照样可以使用:
sublime Text 2 编译配置设置方法
tools-build system-new build system 新建一个配置文件 设置为
{
“cmd”: ["go", "run", "$file_name"],
“file_regex”: “^[ ]*File \”(…*?)\”, line ([0-9]*)”,
“working_dir”: “$file_path”,
“selector”: “source.go”
}
然后就可以用ctrl b 编译了
保存
go语言库是封装了windows的api吗go语言库是封装了windows的api 。根据查询相关公开信息显示 , Go开发WindowsApp要做的第一件事情就是封装这些windowsapi 。这个项目已经实现了对winapi的封装 。
怎么吧go程序打包成可运行的EXE文件请自行查看我前面写得GO语言开发环境和GO语言IDE编辑器的经验文章 我们先写一段GO代码 很简单就是打印输出一个hello world! 保存为print.go文件 然后再CMD下一路cd到print.go目录下来 在cmd下运行 go run print.go就可以运行go程序了 看看运行...
如何配置go语言开发环境1、下载go的zip文件 。并且一定要把文件解压到c:\go目录下 。
2、配置windows的高级环境变量 。包括:GOROOT、GOOS、GOBIN、GOARCH 。并且在path变量里面把c:\go\bin加入 。以便可以在命令行直接运行go命令 。
举例:我的机器:
GOPATH= c:\go;c:\go\src;F:\workspace\goSample01;
GOBIN=c:\go\bin;F:\workspace\goSample01\bin;
其中,c:\go是go的安装路径;
F:\workspace\goSample01是我写的go语言项目的工程目录;
F:\workspace\goSample01\bin是go语言项目的工程目录下的可执行文件路径;
3、在完成环境变量配置后,打开一个命令行窗口 , 直接输入go,然后回车,看看是否出现go的帮助信息 。如果出现,那么go的基本环境就OK了 。
注意:这个基本环境不包含开发工具,也不能直接编译带C代码的go程序 。
4、(可选)为了支持Import远程包,最好装个gomingw 。下载地址: 。如果下的是压缩包,请把它解压到C盘 。例如,C:\gowin-env 。里面有个Console.bat是以后使用go get的环境 。举例:有个文件a.go,里面import(
"fmt"
"github.com/astaxie/beedb"
_ "github.com/ziutek/mymysql/godrv"
为了编译该a.go文件,需要启动Console.bat , 然后在该命令行窗口,进入c:\go\src目录下,执行go getgithub.com/astaxie/beedb
Go get github.com/ziutek/mymysql/godrv .
Go会自动下载该远程包并编译和安装这些包 。
配置goclipse(可?。?
(如果不喜欢eclipse开发工具,请跳过这个配置 。)
1、下载并安装goclipse插件 。Goclipse是go语言for eclipse的插件,下载地址:
2、启动eclipse并创建go项目 。然后写个最简单的helloworld.go文件,并运行 。代码如下:
packagemainimport"fmt"func main(){fmt.Printf("hello, world")}
配置gocode(可?。?
如果不需要go语法辅助和eclipse里面的(按ALT /)弹出go语言自动辅助功能,请跳过这个配置 。
1、下载gocode的zip文件 , 解压后放在go的bin目录下 。
2、下载并安装Git软件 。并且在path里面配置git的执行路径 。例如c:\git\bin
3、在命令行执行:go build .\gocode 。如果一切正常,那么将会编译生成一个gocode.exe文件在go的bin目录下 。如果编译失败,那么就转第4步 。
4、如果第3步直接编译gocode源文件成功,那就直接到第5步 。否则 , 就需要通过git下载gocode源文件,然后再编译 。在命令行执行:go get -u github.com/nsf/gocode。就会生成gocode.exe文件 。
5、在goclipse插件里面指定gocode的路径 。就可以在elcipse里面调用gocode来帮助写编码了 。
从开发工具这块看,go语言还不够成熟,开发工具都还不完善 , 有待改进 。
下载go-tour教程源代码(可?。?
Google有个在线运行go语言的教程(),很不错 。支持在web上直接运行大部分的go程序,想了解这个教程的源代码的朋友可以通过以下方式获取 。如果没兴趣,可以跳过这个步骤 。
1、下载安装Mercurial软件 。
2、在命令行下输入:
hg clone
这个URL是我从google的go-tour源代码的一个clone 。作为测试用的 。如果把http改成https协议 , 下载就会失败 。搞不懂 。
编译带调用C代码的go文件(可?。?
1、为了在windows下编译带C代码的go程序,你首先需要下载并安装MinGW或者Cygwin 。
2、首选安装MinGW 。在安装MinGW之后,记得要把MinGW安装目录\bin路径设置在path环境变量里面,以便能在dos窗口下直接调用gcc 。
3、下载一个gowin-env 。下载地址:gowin-env 。下载后解压到某个目录下,例如:C:\gowin-env. 然后,编辑go-env.bat 。配置相关的go参数 。例如 , 我的配置是:
set GOARCH=386
set GOOS=windows
set GOROOT=c:\go
set GOBIN=%GOROOT%\bin
set GOPATH=%GOROOT%;F:\workspace\goSample01;
设置好go-env.bat后,就可以点击Console.bat来启动编译和运行窗口 。
4、编写一个带C代码的go程序 。例如,testc.go
5、编译
例如:
go build -compiler gccgo test_c.go
运行调用C代码的go文件(可?。?
1、testc.go.
创建rand目录,然后在rand里面创建testc.go. 代码如下:
package rand
/*
//
#include stdio.h
*/
import "C"
func PrintHello() {
C.puts(C.CString("Hello, world\n"))
}
2、a.go
在rand下创建a.go.代码如下:
package rand
import "fmt"
func SayHello(name string){
fmt.Println(name)
}
3、test_import.go
在rand的上一级创建test_import.go 。代码如下:
package main
import "./rand"
func main(){
rand.SayHello("tom")
rand.PrintHello()
}
4、运行test_import.go
go run test_import.go
在测试其它几个C代码的时候,发现windows版本的cgo还有些编译问题 , 同样的代码转移到苹果的XCODE下就没有问题 。后来终于发现原因了,原来有些例子是unix平台下的 , 而在windows平台下,方法名和参数需要做调整 。
例如:下面代码在windows下编译报一堆错误 。
package rand
/*
#include stdlib.h
*/
import "C"
func Random() int {
return int(C.random())
}
func Seed(i int) {
C.srandom(C.uint(i))
}
这里需要把return int(C.random()) 修改为“return int(C.rand())”
C.srandom(C.uint(i))修改为“C.srand(C.uint(i))”编译就OK了 。
【go语言封装exe go http封装】关于go语言封装exe和go http封装的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读