热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Go语言的开发环境配置的经验总结

Go语言的开发环境配置的经验总结,Go语言社区,Golang程序员人脉社

转自:http://my.oschina.net/qinhui99/blog/57046

传说go语言的最佳开发环境是苹果的XCODE,我测试的结果确实如此。需要用CGO编译带C代码的go程序的朋友,建议首选苹果的XCODE环境。Windows环境下配置CGO编译非常麻烦,因为Go的文档例子大多以UNIX为例子,所以有些C代码在windows下无法编译,需要修改代码。

我用到的go语言版本是最新的发布版本go 1。下载地址:http://code.google.com/p/go/downloads/list

国人翻译的go官方安装文档的链接:

http://code.google.com/p/golang-china/wiki/Install 。这个官方安装文档感觉有些过时了,仅供参考。

 还有一个《学习Go语言》中文版可以参考:地址:http://www.mikespook.com/learning-go/comment-page-1/#comment-4000

下面是我在winxp下配置go语言开发环境的一些记录:

Windows环境下配置go(必需)

1、 下载go的zip文件。并且一定要把文件解压到c:go目录下。

2、 配置windows的高级环境变量。包括:GOROOT、GOOS、GOBIN、GOARCH。并且在path变量里面把c:gobin加入。以便可以在命令行直接运行go命令。

(ps:原作者显然是认为我们是高手了,所以这么简略,但是我真心是菜鸟,没看到原作者的意思,卡在这里了,好在找到另一篇文章:http://devbbs.doit.com.cn/thread-29077-1-1.html,不过它是基于linux但是很有参考意义)

它的设置是:

http://devbbs.doit.com.cn/thread-29077-1-1.html

安装Go之前需要安装mercurial,这是Go的版本控制工具,可以直接通过ubuntu的安装程序搜索添加。
然后为当前用户定义下面几个bash变量。在ubuntu下敲入cd $HOME,一般是/home/username,然后敲vim .bashrc,修改.bashrc
在这个文件中添加如下(我的cpu是intel,所以是GOARCH是386,具体可参考golang.org说明:
GOROOT="$HOME/Go"
export GOROOT
GOOS=linux
export GOOS
GOARCH=386
export GOARCH
GOBIN="$HOME/bin"
export GOBIN
在帮助里写GOBIN是可选的,但我试了,必须有。
在.bashrc最后还要加上这一行,保证能正确编译安装。
PATH=$PATHGOBIN

也就是说,我现在的情况是: GOROOT = c:go、GOOS=windows、GOARCH=386)

举例:我的机器:

GOPATH= c:go;c:gosrc;F:workspacegoSample01;

GOBIN=c:gobin;F:workspacegoSample01bin;

其中,c:go是go的安装路径;

F:workspacegoSample01是我写的go语言项目的工程目录;

      F:workspacegoSample01bin 是 go 语言项目的工程目录下的可执行文件路径;

3、 在完成环境变量配置后,打开一个命令行窗口,直接输入go,然后回车,看看是否出现go的帮助信息。如果出现,那么go的基本环境就OK了。

注意:这个基本环境不包含开发工具,也不能直接编译带C代码的go程序。

 4、(可选)为了支持Import远程包,最好装个gomingw。下载地址:http://code.google.com/p/gomingw/downloads/list。 如果下的是压缩包,请把它解压到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:gosrc目录下,执行go get github.com/astaxie/beedb

Go get github.com/ziutek/mymysql/godrv .

Go 会自动下载该远程包并编译和安装这些包。

配置goclipse(可选)

(如果不喜欢eclipse开发工具,请跳过这个配置。)

1、 下载并安装goclipse插件。Goclipse是go语言for eclipse的插件,下载地址:http://code.google.com/p/goclipse/

2、 启动eclipse并创建go项目。然后写个最简单的helloworld.go文件,并运行。代码如下:

package main import "fmt" func main() {         fmt.Printf("hello, world") }

配置gocode(可选)

如果不需要go语法辅助和eclipse里面的(按ALT+/)弹出go语言自动辅助功能,请跳过这个配置。

1、 下载gocode的zip文件,解压后放在go的bin目录下。

2、 下载并安装Git软件。并且在path里面配置git的执行路径。例如c:gitbin

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语言的教程(http://tour.golang.org/#2),很不错。支持在web上直接运行大部分的go程序,想了解这个教程的源代码的朋友可以通过以下方式获取。如果没兴趣,可以跳过这个步骤。

1、 下载安装Mercurial软件。

2、 在命令行下输入:

hg clone http://qinhui99@code.google.com/r/qinhui99-go-tour/

http://qinhui99@code.google.com/r/qinhui99-go-tour/ 这个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:workspacegoSample01;


设置好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

*/

import "C"

func PrintHello() {

C.puts(C.CString("Hello, worldn"))

}

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

*/

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了。



推荐阅读
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在Android Studio中使用命令行build gradle的方法,并解决了一些常见问题,包括手动配置gradle环境变量和解决External Native Build Issues的方法。同时提供了相关参考文章链接。 ... [详细]
  • 本文介绍了在无法联网的情况下,通过下载rpm包离线安装zip和unzip的方法。详细介绍了如何搜索并下载合适的rpm包,以及如何使用rpm命令进行安装。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 本文介绍了在Linux下安装Perl的步骤,并提供了一个简单的Perl程序示例。同时,还展示了运行该程序的结果。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • Windows7 64位系统安装PLSQL Developer的步骤和注意事项
    本文介绍了在Windows7 64位系统上安装PLSQL Developer的步骤和注意事项。首先下载并安装PLSQL Developer,注意不要安装在默认目录下。然后下载Windows 32位的oracle instant client,并解压到指定路径。最后,按照自己的喜好对解压后的文件进行命名和压缩。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • OpenCV4.5.0+contrib编译流程及解决错误方法
    本文介绍了OpenCV4.5.0+contrib的编译流程,并提供了解决常见错误的方法,包括下载失败和路径修改等。同时提供了相关参考链接。 ... [详细]
author-avatar
文之辅翼_770
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有