Go程序开发---Go环境配置:CentOS6.5+Go1.8标准包安装

1.Go安装

1.1Go的三种安装方式

    Go有多种安装方式,可以选择自己习惯的方式进行,这里介绍三种安装方式:

        1)Go源码安装

        2)Go标准包安装

        3)第三方工具安装

    这里主要介绍下Go标准包在CentOS6.5系统中的安装方式

1.2Go标准包安装

    1)首先需要具备一个CentOS6.5的操作系统

    2)下载安装包,此处使用1.8的64位版本go1.8beta1.linux-amd64.tar.gz,将其解压到/usr/local目录

 

    3)配置环境变量,在/etc/profile文件末尾设置,配置需要重启后生效

    4)运行go命令,如果出现usage信息,说明安装配置成功

1.3Go配置路径说明

    1)GOROOT

        golang安装路径

    2)GOPATH

        Go工作环境中常常用到的一个很重要的环境变量(这种设计类似java)。具体用途:go命令常常需要用到的,如go run,go install, go get等。允许设置多个路径,和各个系统环境多路径设置一样,windows用“;”,Linux(mac)用“:”分隔。

    3)GOBIN

        go install编译存放路径。不允许设置多个路径。可以为空。为空时则遵循“约定优于配置”原则,可执行文件放在各自GOPATH目录的bin文件夹中(前提是:package main的main函数文件不能直接放到GOPATH的src下面。

    4)GOPATH目录结构

 

        goWorkSpace // (goWorkSpace为GOPATH目录)
            -- bin // golang编译可执行文件存放路径,可自动生成。
            -- pkg // golang编译的.a中间文件存放路径,可自动生成。
            -- src // 源码路径。按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。

 

    5)Go目录结构1       

        project1 // (project1添加到GOPATH目录了)
            -- bin
            -- pkg
            -- src
                -- models // package
                -- controllers // package
                -- main.go // package main[注意,本文所有main.go均指包main的入口函数main所在文件]

    6)Go目录结构2

        goWorkSpace // goWorkSpace为GOPATH目录
            -- bin
                -- myApp1 // 编译生成
                -- myApp2 // 编译生成
                -- myApp3 // 编译生成
            -- pkg
            -- src
                -- common 1
                -- common 2
                -- common utils ...
                -- myApp1 // project1
                    -- models
                    -- controllers
                    -- others
                    -- main.go
                -- myApp2 // project2
                    -- models
                    -- controllers
                    -- others
                    -- main.go
                -- myApp3 // project3
                    -- models
                    -- controllers
                    -- others
                    -- main.go

    7)Go目录结构3    

        dir
            -- goWorkSpace1 // 主要是为了区分自己的鼓捣的一些东西和工作上的项目
            -- goWorkSpace2
                -- bin
                -- pkg
                -- src
                    -- myApp1
                        -- .git
                        -- models
                        -- controllers
                        -- main.go
                    -- myApp2
                        -- .git
                        -- models
                        -- controllers
                        -- main.go
                    -- myApp3
                        -- .git
                        -- models
                        -- controllers
                        -- main.go

2.Go开发工具

2.1LiteIDE

2.1.1安装git

    为了通过git获取相关的工具包(gocode),需要连接网络安装,yum install git,安装完成后,可以通过git --version查看到版本号说明已经安装成功

2.1.2安装gocode(如果LiteIDE包含该工具,就不需要安装)

    gocode是Go编程语言的自动完成守护进程,下载gocode,go get github.com/nsf/gocode,安装gocode,go install github.com/nsf/gocode,安装完成后可以在GOBIN目录下看到gocode执行程序

2.1.3下载和解压LiteIDE

    在解压后的bin目录下,可以看到相关的工具

2.1.4设置编辑环境

    1)工具栏中的环境配置中选择linux64

 

    2)在查看--选项--LiteEnv中双击编辑linux64.env,将其中的GOROOT进行修改和保存

    3)Go语言的工具链使用GOPATH设置,是Go语言开发的项目路径列表,在命令行中输入(在LiteIDE中也可以Ctrl+,直接输入)go help gopath快速查看GOPATH文档。在LiteIDE中可以方便的查看和设置GOPATH。通过菜单-查看-GOPATH设置,可以查看系统中已存在的GOPATH列表, 同时可根据需要添加项目目录到自定义GOPATH列表中。

2.1.5使用体验

    1)新建项目,选择上一步添加的GOPATH,模板为Go1 Command Project

 

    2)编辑源代码,添加几行代码,包括变量声明、初始化及赋值,用来验证调试是否生效

 

    3)设置编译选项及编译,编译->编译配置,设置编译参数。在BUILDARGS添加-gcflags "-N -l",目的是去掉编译优化,方便调试。

    4)Ctrl+B构建项目

    5)调试程序,按F5启动调试,程序在main函数处停止,通过F10单步调试

2.2 Vim

2.2.1安装Vim

    如果安装的操作系统中有Vim,可以跳过此环节,如果没有可以通过以下命令安装

     yum install vim*

     会看到vim-enhanced这个包,然后运行yum install vim-enhanced  

2.2.2安装git

    可以参考前面的安装方法

2.2.3安装Vundle.vim

    Vim-go是当前使用最为广泛的用于搭建Golang开发环境的vim插件,这里我同样使用vim-go作为核心和基础进行环境搭建的。vim-go利 用开源Vim插件管理器安装,gmarik/Vundle.vim是目前被推荐次数更多的Vim插件管理器,超过了pathogen。这里我们 就用vundle来作为Vim的插件管理工具。

    Vundle.vim的安装步骤如下:   

    mkdir ~/.vim/bundle 

    git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim(根据网络状态速度不一样,如果失败可以多试几次)

    找到vimrc,可以通过vim中输入”:version“命令查看到vimrc位置,在文件顶部添加有关Vundle.vim的配置:

    set nocompatible " be iMproved, required
    filetype off " required

    " set the runtime path to include Vundle and initialize
    set rtp+=~/.vim/bundle/Vundle.vim
    call vundle#begin()

    " let Vundle manage Vundle, required
    Plugin 'gmarik/Vundle.vim'

    " All of your Plugins must be added before the following line
    call vundle#end() " required
    filetype plugin indent on " required

2.2.4安装Vim-go

    编辑vimrc,在vundle#begin和vundle#end间增加一行:

    Plugin 'fatih/vim-go'

    在Vim内执行PluginInstall    

    编辑~/.vimrc,在vundle#begin和vundle#end间增加一行:

    Plugin 'fatih/vim-go'Vundle.vim会在左侧打开一个Vundle Installer Preview子窗口,窗口下方会提示:“Processing 'fatih/vim-go'”,待安装完毕后,提示信息变 成“Done!”。又是网络不行的话会失败,重试多次会成功

    这时,我们可以看到.vim/bundle下多了一个vim-go文件夹:

    $ ls .vim/bundle/
    vim-go/     Vundle.vim/

2.2.5安装go.tools Binaries

    vim-go安装说明中提到所有必要的binary需要先安装好,比如gocode、godef、goimports等。 

    通过:GoInstallBinaries,这些vim-go依赖的二进制工具将会自动被下载,并被安装到$GOBIN下或$GOPATH/bin下。(这个工具需要依赖git或hg,需要提前安装到你的OS中。)

 

    :GoInstallBinaries的执行是交互式的,你需要回车确认:

    不过这些代码多在code.google.com上托管,因此由于众所周知的原因,vim-go的自动安装很可能以失败告终,这样就需要你根据上 面日志中提到的各个工具的源码地址逐一去下载并本地安装。无法搭梯子的,可以通过http://gopm.io 下载相关包。

 

2.2.6其他插件的安装

     可以参考http://tonybai.com/2014/11/07/golang-development-environment-for-vim/中的安装方法

2.3eclipse

2.3.1安装eclipse

    安装前需要先安装jdk,并配置环境变量

 

    安装eclipse,直接解压到指定目录,这里使用/usr/local

2.3.2 安装goclipse和CDT

    安装方式:使用eclipse的软件升级功能完成,打开Eclipse,“help”->"install new softwear ",随后点“add”按钮,在“location”里面输入“http://goclipse.github.io/releases/”后,点“OK”按钮,随后操作就和升级其它软件一样了,这个插件安装完毕后,我们就可以在Eclipse的“window”->"preferences"的左侧看到“go”的项目了,这说明我们已经成功按照了goClipse和CDT!

 

2.3.3配置goclipse和tools

    这里的tools是我本地安装好工具所在目录

2.3.4创建项目和调试

    项目属性:

    调试效果

 

转载于:https://www.cnblogs.com/auh2010006/p/6343231.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/396870.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python矩阵乘法_鱼书——第一章 Python入门

one 第一章1.1 Python是什么Python是一个简单、易读、易记的编程语言,而且是开源的,可以免费地自由使用。Python可以用类似英语的语法编写程序,编译起来也不费力,因此我们可以很轻松地使用Python。特别是对首次接触编程的人士来说…

keepalived vip ping不通_【干货分享】OpenStack LVS负载均衡为什么不通?

背景介绍OpenStack环境Neutron 的安全组会向虚拟机默认添加 anti-spoof 的规则,将保证虚拟机只能发出/接收以本机Port为原地址或目的地址(IP、MAC)的流量,提高了云的安全性。但是LVS等需要绑定VIP的场景,默认流量是被拦截的。需要…

Docker安装ssh,supervisor等基础工具

2019独角兽企业重金招聘Python工程师标准>>> Docker安装ssh,supervisor等基础工具 需要提前下载好官方的ubuntu镜像,我这里使用的是ubuntu:14.04版本,这里安装了一些基础的工具ssh,curl,wget,vi…

nginx集群_windows环境下搭建简单Nginx+Tomcat集群

通俗点将,负载均衡就是因为访问流量太大,导致项目访问不流畅、甚至宕掉,所以通过一种分流的方式来缓解这种情况。一、 工具nginx-1.8.0apache-tomcat-6.0.33二、 目标实现高性能负载均衡的Tomcat集群:三、 步骤1、首先下载Nginx&a…

颜色传感器TCS230及颜色识别电路(转)

摘要 TCS230是美国TAOS公司生产的一种可编程彩色光到频率的传感器。该传感器具有分辨率高、可编程的颜色选择与输出定标、单电源供电等特点;输出为数字量,可直接与微处理器连接。文中主要介绍TCS230的原理和应用,以及色光和白平衡的知识&…

mysql命令行导入和导出数据

首先打开命令窗口,输入命令:mysql -h localhost -u selffabu -p 连接成功后,进行下面的操作 MySQL中导出CSV格式数据的SQL语句样本如下: Sql代码select * from test_info into outfile /tmp/test.csv fields terminated by , optionally enclosed by " esc…

7.组件连线(贝塞尔曲线)--从零起步实现基于Html5的WEB设计器Jquery插件(含源码)...

上节讲到如何创建组件,清除设计器视图,以及设计视图的持久化和恢复,本节将重点讲如何实现组件间的连线,前面章节有提到为了方便从持久化文件中恢复,组件和连线是分别存放的:nodes和lines对象,两…

定位排查工作流的计算结果数据量不符合预期的方法

近期有发现一些用户在咨询,为什么数据从数据源出来后,经过了一些计算,结果不符合预期了。最常见的是说,为什么我的数据在Mysql里有xx条,怎么到MaxCompute里算了下结果变了。因为这是两个不同的系统,我们又没…

canvas 插件_基于canvas的JavaScript 二维码生成工具——QRCanvas

介绍在我们日常的开发中,特别是在现代的社会环境下,二维码的应用可谓是丰富多彩,各种各样让人眼花缭乱的二维码,可见二维码已经渗透进我们生活的方方面面,也可以说目二维码确确实实方便了我们的生活。因为作为开发人员…

消息队列NetMQ 原理分析2-IO线程和完成端口

目录 前言介绍目的IO线程初始化IO线程Proactor启动Procator线程轮询处理socketIOObject总结前言 介绍 [NetMQ](https://github.com/zeromq/netmq.git)是ZeroMQ的C#移植版本,它是对标准socket接口的扩展。它提供了一种异步消息队列,多消息模式,消息过滤(订阅&#xf…

VC连接mysql数据库错误:libmysql.lib : fatal error LNK1113: invalid machine 解决方法

VC连接MySQL的配置过程在上一篇博文中,不过当你设置好,以为万事大吉的时候,运行却出现这个错误:libmysql.lib : fatal error LNK1113: invalid machine type。 无效的机器类型,真的是很让人捉急。 发生这个错误的原因是…

linux 内存泄漏 定位,一种内存泄露检查和定位的方法

一个系统后台服务进程,可能包括多个线程,在生成环境下要求系统程序能够稳定长时间稳定运行而不宕机。其中一个基本的前提就是需要保证系统程序不存在内存泄露。那么,该如何判读系统程序是否存在内存泄露呢?如果存在,又…

ifconfig命令找不到_02. Linux命令之查看网络连接

1. 查看网络连接数和端口使用 netstat 命令查看网络连接情况netstat -anp参数:-a 显示所有选项-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n 拒绝显示别名,能显示数字的全部转化成数字。-p 显示建立相关链接的程序名关键列解释:Proto 表示协议…

python学习之模块(pip),列表生成式,模块操作mysql,excel

python基础 生成式 列表生成式  格式 [表达式 for 表达式 in 迭代对象 (可加判断)] 原: 1 res1 [] 2 for i in range(1,5): 3   res1.append(i) 4 print(res1) 改: 1 res2 [i for i in range(1,5)] 2 print(res2) 字典生成式  格式 {key:value f…

linux驱动read函数 copytouser,Linux驱动编程 step-by-step (五)主要的文件操作方法实现...

主要的文件操作方法实现文件操作函数有很多的操作接口,驱动编程需要实现这些接口,在用户编程时候系统调用时候会调用到这些操作structfile_operations {...loff_t (*llseek) (structfile *, loff_t,int);ssize_t (*read) (structfile *,char__user *,siz…

基于光线追踪的渲染中景深(Depth of field)效果的实现

图形学离线渲染中常用的透视摄像机模型时根据小孔成像的原理建立的,其实现通常是从向成像平面上发射ray,并把trace这条ray的结果作为成像平面上对应交点的采样结果。即: 图片来自《Fundamentals of Computer Graphics》 现实中的镜头拍摄的图…

带你制作百词斩单词表读写插件

上篇博文简单的介绍了一下Chrome插件,今天就与大家分享一下我做的这款有实际意义的插件吧。 做这款插件主要是用百词斩站点进行单词学习时,遇到的一点点闹心事儿。在单词表中不能听发音。也不能练习拼写。所以才忍无可忍的做了这么一款插件。自我感觉还是…

iphone各机型参数对比_带你了解新款iPhone 12系列四款机型

2020年10月14日凌晨1:00,苹果召开新品发布会,发布了新款iPhone 12系列手机,“果粉”们期待已久的iPhone 12终于来了。iPhone 12系列手机共有四款机型,分别是iPhone 12 mini、iPhone 12、iPhone 12 Pro、iPhone 12 Pro …

高并发第一弹:准备阶段 了解高并发

高并发第一弹:准备阶段 了解高并发 首先需要知道什么并发, 什么是高并发. 并发: 关于并发的学习,可以从JDK提供的并发包为核心开始,许多其他的类和封装都是对其进行扩展或者补充,我们来看一下Java并发包(java.util.concurrent包,简…

matlab立体坐标定位_【半导光电】基于光电探测器的激光章动定位算法(二)

今日光电有人说,20世纪是电的世纪,21世纪是光的世纪;知光解电,再小的个体都可以被赋能。欢迎来到今日光电!----与智者为伍 为创新赋能----1. 章动定位算法实验前,首先需要对光路进行调节,保证经…