使用Eclipse运行第一个Go程序
Windows 10家庭中文版,go version go1.11 windows/amd64,
Eclipse IDE for C/C++ Developers Photon Release (4.8.0),
GoClipse 0.16.1(v201607061938),
紧接着上一篇博文,现在孤可以是使用Eclipse开发Go程序了:建立项目、建立源文件、编译、运行、测试、调试……
本文介绍自己使用Eclipse运行第一个Go Project的过程以及其中踩到的坑。
建立项目

下面的 D:\eclipse-cdt\ws 为Eclipse的 工作空间——后来更改了,更改后,还需要配置一遍Window->Preferences->Go:

项目建立成功:

上图的项目树结构中,src初步理解为放源码,bin存放编译、运行、调试等产生的可执行文件(细节需dig),Build Targets很重要,涉及到后面的一个 坑 的调试。
建立源程序
这一步自己犯错了——Go语言对项目的目录结构是有一些规定的(看的一些网络博文也有提到,还需dig),而自己把程序直接就放在了src目录下:


在项目的src下生成了源文件 new_file.go:

修改为自己需要的测试程序:
package main import (
"fmt"
) func main() {
fmt.Println("Here I come!")
}
执行程序——遇到 问题(第一个) 了,执行不了:
Resource doesn't have a corresponding Go package.

后在Run Configurations中选择Go Application运行时,出现下面的提示:


查看一些文章后,在src下新建pkg1,并将上面的源文件放入其中:

再次执行程序,第二个问题出现了——在项目所在bin目录下没有找到可执行文件:


经过查找,在Go安装目录的bin下面找到了可执行程序——pkg1.exe——可是,为什么呢?:

“误打误撞”打开了项目下的Build Targets,显示了项目的 属性对话框(Properties for go961):
发现其中的(Optional) Path of generated executable显示为使用默认(Use default),可是,默认又是什么呢?

看过上面的内容后,自己并不知道如何解决问题!于是,试验!
打开Run Configurations,“胡乱地”修改其中的配置,并运行程序(读者可以略过这一部分,因为其中的一些配置是错误的):



由于前面自己发现项目编译运行后产生的可执行文件跑到Go安装目录下的bin文件夹中了,于是,把Run Configurations里面的Path of launch executable取消Use default,并配置可执行程序的路径为Go安装目录下的本项目可执行文件:

再次执行,Eclipse中运行程序成功,得到了预期结果!

可是,俺还是像可执行程序出现在项目的bin目录下啊!为什么会这样呢?查阅一些网络资料(费时费力啊)后,“灵光一闪”!好像自己1周前安装Go时,好像配置了一个环境变量GOBIN来着,是因为它引起的吗?

删除这个环境变量!!!
重新配置Run Configurations——恢复为选中使用Use default:

再次运行项目——成功!项目的bin目录下出现了可执行程序pkg1.exe了!


好了,第一个Go程序就这么运行起来了!
180906 1806补充说明:
1.更换Eclipse的Workspace
在测试过程中,自己更换了一次Eclipse的工作目录——Window->Preferences->Startup and Shutdown->Workspaces:
选中其中的Prompt for workspace on startup,重启Eclipse即可更改工作目录。
下图显示,更换工作目录后,Eclipse存在两个工作目录了,最新的存在于最上方,也是下次启动时的默认工作目录。


2.Go项目导入
在更换工作目录后,再次打开Eclipse,发现之前的项目go961不存在了——因为新的工作目录下没有这个项目。
自己知道Eclipse是有项目导入功能的,于是,执行项目导入(注意,导入前项目已被自己拷贝到新的工作目录中):

导入项目出现错误:

导入项目没有GOROOT、GOPATH:

Window->Preferences->Go中的各个工具为空:

解决方法:取消选择gofmt下的User default location,在一个一个手动配置好。



然后打开Run Configurations查看运行配置,再执行:此时到导入项目的Go package to build为空,执行失败!


修改Run Configurations配置,重新执行:成功!


3.设置项目默认编码为UTF-8
默认为系统的GBK,修改为UTF-8:


鉴于后面的项目都可能是UTF-8编码,因此,修改整个Eclipse的 工作目录编码为UTF-8:
Window->Preferences->General->Workspace

虽然做了全局的配置,但孤以为,还是应该在新建项目时 单独配置其编码为UTF-8——移植项目时就不会因为Eclipse的默认编码不同而出错了吧(猜的)!
4.建立第二个项目:成功!

--------分割线--------
可是,自己还存在不少疑问:
1.各个Go语言的环境变量有什么意义?
2.GOBIN会影响使用go命令安装软件吗,比如gocode、guru等,孤发现之前安装guru时,不光C:\Go\bin下面有guru.exe,在GOPATH下也存在一个guru.exe。

3.在新建Go源文件时,有三个选项,分别表示什么源文件呢?

在选择源文件类型为Command Source File时,其下出现三个可选项,又分别代表什么意思呢?在哪些应用中可以用到?

5.Build Targets要怎么配置?Go项目的属性又要怎么配置?
6.Run Configurations下的Build Command又需要怎么配置?
7.使用go.exe安装了软件,除了前面搭建开发环境需要的,还可以安装哪些软件?
8.GoClipse是2016年的,太过时了吧?Google官方用什么IDE进行Go开发呢?
9.Go语言的常见应用领域有哪些?怎么让它发挥出更大的功效呢?
10.Go语言怎么会GitHub等配合使用?前面发现可以下载安装GitHub上的程序,那么,上传到自己的程序库呢?
11.Go语言有哪些 标准库?第三方库?
……
问题很多,还需要更加深入才行啊!之前看到别人用Go语言写Web服务器,感觉很牛啊!其它的Web开发都是借助于线程的Web服务器呢!
还有,Go语言的强项是什么?抓住其强项进行学习!之前学习Python,就没有采用这种策略,结果,在爬虫、Web开发上花了不少时间(几个月),以至于现在对于使用Python进行大数据处理分析、人工智能等开发一片空白!所以,学习Go语言得换换策略才行!
前面看过菜鸟的Go语言教程了,目前不记得有什么特别困难的点了。
那么,接下来,了解Go语言的应用场景、补足基础知识的缺失了!
还好可以访问它的墙内官网了!否则自己又会向Android开发一样放弃了吧!
使用Eclipse运行第一个Go程序的更多相关文章
- 搭建java开发环境、使用eclipse编写第一个java程序
搭建java开发环境.使用eclipse编写第一个java程序 一.Java 开发环境的搭建 1.首先安装java SDK(简称JDK). 点击可执行文件 jdk-6u24-windows-i586. ...
- 运行第一个Hadoop程序,WordCount
系统: Ubuntu14.04 Hadoop版本: 2.7.2 参照http://www.cnblogs.com/taichu/p/5264185.html中的分享,来学习运行第一个hadoop程序. ...
- Spark认识&环境搭建&运行第一个Spark程序
摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运 ...
- 运行第一个ruby程序
0x00 安装 首先需要安装一个ruby的环境,ruby分为win.linux.macOS版本.不用系统安装方法略有差异,不在这进行讲解. 0x01 运行第一个ruby程序 我这里是win环境,打开命 ...
- 运行第一个python程序,python 变量,常量,注释
一.运行第一个python程序: print('Hello,world') 保存为.py文件 在cmd窗口: python3x:python py文件路径 回车 python2x:python p ...
- 编译运行第一个Java程序——通过示例学习Java编程3
作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=13 在本教程中,我们将了解如何编写.编译和运行Ja ...
- OpenCV学习笔记(一)安装及运行第一个OpenCV程序
1.下载及安装 OpenCV是一套开源免费的图形库,主要有C/C++语言编写,官网: http://opencv.org/ .在 http://opencv.org/downloads.html 可以 ...
- 运行第一个Python程序
Python的三种运行方式 交互式解释器 在终端输入python3 进入python交互式解释器 输入exit()退出交互式解释器 命令行脚本 创建python脚本 通过命令执行程序 python h ...
- [IOS]从零开始搭建基于Xcode7的IOS开发环境和免开发者帐号真机调试运行第一个IOS程序HelloWorld
首先这篇文章比较长,若想了解Xcode7的免开发者帐号真机调试运行IOS程序的话,直接转到第五部分. 转载请注明原文地址:http://www.cnblogs.com/litou/p/4843772. ...
随机推荐
- 使用alpine的docker镜像下 dind 的方式安装dotnet core 的一个非dockerfile的方法
1. 下载dind的镜像 docker pull docker:dind 2. 执行该镜像 docker run -it --privileged --name some-docker -d dock ...
- Kivy 中文教程 实例入门 简易画板 (Simple Paint App):2. 实现绘图功能
1. 理解 kivy 坐标系统 上一节中,咪博士带大家实现了画板程序的基础框架,以及一个基本的自定义窗口部件(widget).在上一节的末尾,咪博士留了一道关于 kivy 坐标系统的思考题给大家.通过 ...
- 【题解】FBI序列
题目描述 两伙外星人策划在未来的XXXX年侵略地球,侵略前自然要交换信息咯,现在,作为全球保卫队队长,你截获了外星人用来交换信息的一段仅由“F”,“B”,“I”,“O”组成的序列.为了保卫地球和平,为 ...
- 【agc001e】BBQ HARD(动态规划)
[agc001e]BBQ HARD(动态规划) 题面 atcoder 洛谷 题解 这些agc都是写的整场的题解,现在还是把其中一些题目单独拿出来发 这题可以说非常妙了. 我们可以把这个值看做在网格图上 ...
- BZOJ 2242 [SDOI2011]计算器 | BSGS
insert的时候忘了取模了-- #include <cstdio> #include <cmath> #include <cstring> #include &l ...
- 解题:SHOI 2006 有色图
题面 本质上是在对边求置换,然后每个循环里涂一样的颜色,但是还是要点上入手,考虑每条边的两个端点是否在一个循环里 如果在一个循环里,那么当循环长度$len$为奇数时只有转一整圈才行,而边的总数是$\f ...
- BZOJ 1031 [JSOI2007]字符加密Cipher 后缀数组教程
1031: [JSOI2007]字符加密Cipher Description 喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考.一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一 ...
- 洛谷P3227 切糕
最小割模板. 题意:你要在一个三维点阵的每个竖条中删去一个点,使得删去的点权和最小. 且相邻(四联通)的两竖条之间删的点的z坐标之差的绝对值不超过D. 解: 首先把这些都串起来,点边转化,就变成最小割 ...
- NO.6: 为多态基类声明virtual析构函数
注意:polymorphic base class 应该具有虚析构函数,如果class带有任何virtual函数,也应具有虚析构函数 class不具备polymorphic属性则不应该声明virtua ...
- maven构建SSM项目
对于小型项目来说,使用默认的maven配置项目即可,可是现在分布式项目越来越多,如果巧妙的使用maven部署项目这成了关键. maven的pom.jar.war: 要正确部署得对maven的pom.w ...