注意,不完整编译,仅8g、8l和runtime.a
1. gomingw
Go MinGW Builds
Win32 (experimental) build of release 2011-03-07.1
http://code.google.com/p/gomingw/
2. MSYS | MinGW
MinGW - Minimalist GNU for Windows
* gcc version 3.4.5 (mingw-vista special r3)
* GNU Make 3.81
http://sourceforge.net/projects/mingw/
或者用这个(未测试)
https://bitbucket.org/jpoirier/go_mingw/downloads
3. 编译的额外工具
a. 需要以下工具和库(注意,依赖于mingw的运行时dll,故需要msys/mingw才可运行)
* Ed - A line-oriented text editor
(ed.exe,依赖于Regex)
http://gnuwin32.sourceforge.net/packages/ed.htm
http://www.gnu.org/software/ed/ed.html
* LibIntl for Windows
(libintl3.dll)
http://gnuwin32.sourceforge.net/packages/libintl.htm
* Regex for Windows
(regex2.dll)
http://gnuwin32.sourceforge.net/packages/regex.htm
* Bison for Windows
(bison.exe,依赖于Regex和Libintl)
http://gnuwin32.sourceforge.net/packages/bison.htm
* The AWK Programming Language
(awk.exe)
http://cm.bell-labs.com/cm/cs/awkbook/index.html
--------------------
b. 二进制可以在下面的链接中找到,不需要自己编译:
* ed.exe和regex2.dll在gowin-env中。
https://bitbucket.org/akavel/gowin-env/downloads
或者在GnuWin32中安装。
http://gnuwin32.sourceforge.net/packages.html
--------------------
c. 注意事项:
* 必须复制bison的二进制安装包里的share目录(一些.m4文件)
* 把msys/mingw自带的awk去掉或重命名,使用awk.exe代替原有的awk文件
--------------------
d. 用到的工具合计有(不包括一些依赖库的dll)
gcc version 3.4.5 (mingw-vista special r3)
GNU Make 3.81
GNU Ed 1.2
bison (GNU Bison) 2.4.1
awk version 20070501
4. 解压gomingw源码包
把gomingw的下载包解压到/home/Administrator目录下
目录名为/home/Administrator/go
删除/home/Administrator/go/bin下的所有.exe文件。
只保留quietgcc文件。
删除/home/Administrator/go/lib下的所有.a文件。
删除/home/Administrator/go/pkg/windows_386下的所有库文件。
5. 编译gomingw公共库
包括三个.a文件:
lib9.a
libbio.a
libmach.a
执行命令如下:
$ cd
$ cd go/src/lib9/
$ make
出现错误:
../Make.inc:18: *** $GOROOT is not set; use gomake or set $GOROOT in your environment. Stop.
设置环境变量PATH和GOROOT(注意MinGW的环境变量区分大小写):
$ export GOROOT=/home/Administrator/go
$ export PATH=/home/Administrator/go/bin:$PATH
$ make
注意make可以重复使用,自动跳过之前已经完成的目标。
完成后,生成lib9.a
用类似的办法编译libbio.a和libmach.a
$ cd ../libbio
$ make
$ cd ../libmach
$ make
然后把生成的
lib9.a
libbio.a
libmach.a
复制到/home/Administrator/go/lib下
6. 编译gomingw编译器工具、库和runtime库
关于8g以及其它exe的作用和使用方法见这里
http://golang-china.googlecode.com/svn/trunk/Chinese/golang.org/index.html
http://code.google.com/p/golang-china/
和x86相关的重要可执行文件和库有
* gc.a
* 8g.exe
* 8l.exe(依赖于gc.a)
另外,由于runtime.a这个go库一般都会使用到,
所以还需要以下工具的帮助。
* cc.a
* 8c.exe(依赖于cc.a)
* gopack.exe
* 8a.exe
* runtime.a(依赖于cc.a,8a.exe和gopack.exe)
执行以下命令:(同样需要设置GOROOT和PATH,同上)
$ cd
$ cd go/src/cmd/gc
$ make
(如果失败,请检查awk.exe是否存在,原有awk是否重命名,
然后用make clean all重新编译)
$ cd ../8g
$ make
$ cd ../8l
$ make
$ cd ../cc
$ make
$ cd ../8c
$ make
$ cd ../gopack
$ make
$ cd ../8a
$ make
然后把编译好的8g.exe, 8l.exe, 8c.exe, 8a.exe, gopack.exe
全部复制到/home/Administrator/go/bin下,继续下面的runtime.a编译
$ cd ../../pkg/runtime/
$ make
输出文件runtime.a在_obj目录下,复制到
/home/Administrator/go/pkg/windows_386目录下
(此时目录中只有一个.a文件)
7. 最简单的测试
测试最简单的go程序
$ cd
$ cd go/test
$ 8g -h
gc: usage: 8g [flags] file.go...
flags:
-I DIR search for packages in DIR
-d print declarations
-e no limit on number of errors printed
-f print stack frame structure
-h panic on an error
-o file specify output file
-S print the assembly language
-V print the compiler version
-u disable package unsafe
-w print the parse tree after typing
-x print lex tokens
$ 8g helloworld.go
$ ls helloworld.*
helloworld.8 helloworld.go
$ 8l -h
usage: 8l [-options] [-E entry] [-H head] [-I interpreter] [-L dir] [-T text] [-R rnd] [-r path] [-o out] main.8
$ 8l helloworld.8
$ ls *.exe
8.out.exe
$ ./8.out.exe
hello, world
注意,这里使用8g和8l可以正确地找到库(因为前面编译的时候已经设置好),
但实际操作(脱离MinGW环境)需要重新设置环境变量指向新的路径,见
http://code.google.com/p/golang-china/wiki/Install
生成的8.out.exe是原生的Windows可执行程序,仅导入KERNEL32.DLL,
所以可以独立于MinGW和Go的环境运行。
8. 一些问题
* 如果make没有响应,直接结束进程然后重新运行make。
(待补充)
相关推荐
runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法runtime10种用法...
赠送jar包:onnxruntime-1.10.0-1.5.7.jar; 赠送原API文档:onnxruntime-1.10.0-1.5.7-javadoc.jar; 赠送源代码:onnxruntime-1.10.0-1.5.7-sources.jar; 赠送Maven依赖信息文件:onnxruntime-1.10.0-1.5.7.pom;...
赠送jar包:onnxruntime-1.10.0-1.5.7.jar; 赠送原API文档:onnxruntime-1.10.0-1.5.7-javadoc.jar; 赠送源代码:onnxruntime-1.10.0-1.5.7-sources.jar; 赠送Maven依赖信息文件:onnxruntime-1.10.0-1.5.7.pom;...
赠送jar包:istack-commons-runtime-3.0.12.jar; 赠送原API文档:istack-commons-runtime-3.0.12-javadoc.jar; 赠送源代码:istack-commons-runtime-3.0.12-sources.jar; 赠送Maven依赖信息文件:istack-commons-...
CodeMeter Runtime Kit v7.10a 64位
赠送jar包:flink-runtime_2.11-1.13.2.jar; 赠送原API文档:flink-runtime_2.11-1.13.2-javadoc.jar; 赠送源代码:flink-runtime_2.11-1.13.2-sources.jar; 赠送Maven依赖信息文件:flink-runtime_2.11-1.13.2....
Golang runtime scheduler的详细设计文档
onnxruntime 1.3版本 对应的cuda的版本是10.1
onnxruntime_gpu-1.6.0-cp36-cp36m-linux_aarch64.whl,官方地址:https://elinux.org/Jetson_Zoo#ONNX_Runtime
基于Arcgis软件平台二次开发,利用runtime SDK构建iOS地图应用
CodeMeter Runtime Kit v7.10a 32位
ArcGIS Runtime SDK for Java 100.12.0 的...如需在生产环境中使用ArcGIS Runtime SDK for Java,请联系ESRI公司获得授权,现在也有国产替代产品GeoScne Runtime SDK for Java,可以联系易智瑞公司获得相关资源和授权。
赠送jar包:antlr4-runtime-4.7.jar; 赠送原API文档:antlr4-runtime-4.7-javadoc.jar; 赠送源代码:antlr4-runtime-4.7-sources.jar; 赠送Maven依赖信息文件:antlr4-runtime-4.7.pom; 包含翻译后的API文档:...
易语言模块runtime.rar 易语言模块runtime.rar 易语言模块runtime.rar 易语言模块runtime.rar 易语言模块runtime.rar 易语言模块runtime.rar
Java Runtime Environment-6.0.26.exe
System.Runtime.Serialization.dll System.Runtime.Serialization.dll System.Runtime.Serialization.dll
Microsoft 2008 C++ Runtime (x86),window安装服务器环境大多都需要安装
借助 Microsoft 365 Access Runtime,可以将 Access 365 应用程序分发给计算机上未安装 Microsoft Office 的用户或不包含 Access 的 Microsoft Office 版本。 Microsoft 365 访问运行时包括 Access 数据库引擎 (ADE)...
arcgis runtime samples android master
赠送jar包:jaxb-runtime-2.3.5.jar; 赠送原API文档:jaxb-runtime-2.3.5-javadoc.jar; 赠送源代码:jaxb-runtime-2.3.5-sources.jar; 赠送Maven依赖信息文件:jaxb-runtime-2.3.5.pom; 包含翻译后的API文档:...