`
twt35twt
  • 浏览: 28417 次
社区版块
存档分类
最新评论

gomingw构建记录(仅runtime)

 
阅读更多

gomingw构建记录(仅runtime)
2011年03月07日
  注意,不完整编译,仅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.h tm * 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/Chine se/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种用法runtime10种用法...

    onnxruntime-1.10.0-1.5.7-API文档-中文版.zip

    赠送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;...

    onnxruntime-1.10.0-1.5.7-API文档-中英对照版.zip

    赠送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;...

    电脑出现runtime error错误提示的解决办法.docx

    通过删除注册表中的Runtime Error记录、删除HKEY_LOCAL_MACHINE\SOFTWARE\microsoft\Windows\CurrentVersion\Run中的Runtime Error记录、更新系统和程序、运行系统文件检查器、重置系统环境变量等方法,可以解决该...

    flink-runtime_2.11-1.13.2-API文档-中文版.zip

    赠送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....

    CODESYS-Runtime-en (1).pdf

    CODESYS Runtime 介绍及应用 CODESYS Runtime 是一种工业自动化控制系统 runtime 环境,旨在将智能设备转换为 IEC 61131-3 控制器。该系统由 CODESYS Group 开发,作为一种 manufacturer-independent 的解决方案,...

    .NET Desktop Runtime、.NET桌面运行时版本大全

    .NET Desktop Runtime、.NET桌面运行时版本大全,内有下载好的运行时依赖。如果想下载官方网站提供的版本,说明文件里提供了下载链接。.NET Desktop Runtime、.NET桌面运行时版本大全,内有下载好的运行时依赖。如果...

    jaxb-runtime-2.3.5-API文档-中文版.zip

    赠送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文档:...

    istack-commons-runtime-3.0.12-API文档-中文版.zip

    赠送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 64位

    CodeMeter Runtime Kit v7.10a 64位

    Analysis of the Go runtime scheduler

    Golang runtime scheduler的详细设计文档

    使用ArcGIS Runtime SDK构建iOS地图应用

    基于Arcgis软件平台二次开发,利用runtime SDK构建iOS地图应用

    jetson nx配置onnxruntime环境

    onnxruntime_gpu-1.6.0-cp36-cp36m-linux_aarch64.whl,官方地址:https://elinux.org/Jetson_Zoo#ONNX_Runtime

    onnxruntime 1.3版本

    onnxruntime 1.3版本 对应的cuda的版本是10.1

    CodeMeter Runtime Kit v7

    CodeMeter Runtime Kit v7.10a 32位

    ArcGIS Runtime SDK for Java 100.12.0

    ArcGIS Runtime SDK for Java 100.12.0 的...如需在生产环境中使用ArcGIS Runtime SDK for Java,请联系ESRI公司获得授权,现在也有国产替代产品GeoScne Runtime SDK for Java,可以联系易智瑞公司获得相关资源和授权。

    antlr4-runtime-4.7-API文档-中文版.zip

    赠送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 易语言模块runtime.rar

    Java Runtime Environment-6.0

    Java Runtime Environment-6.0.26.exe

    Microsoft 2008 C++ Runtime (x86)

    Microsoft 2008 C++ Runtime (x86),window安装服务器环境大多都需要安装

Global site tag (gtag.js) - Google Analytics