Gogland编译Syncthing!
说明:我仅仅以这个Syncthing工程为例,来说明如何正确使用Goland编译其他人写的工程,应该具有普遍意义,看懂这篇博客,你想用Gogland去编译其他人的工程,应该不是问题!!
Syncthing是一个免费开源的p2p软件,Go语言编写的!
源码:https://github.com/syncthing/syncthing/releases/download/v0.14.22/syncthing-source-v0.14.22.tar.gz
版本:v0.14.22
Goland下载地址:https://www.jetbrains.com/go/ 点击此页面“Get an early build”按钮,提交自己电子邮件,随后会有回复的电子邮件,里面有下载地址。
操作系统:Windows 10 X64 企业版
一,编译前的准备:需要把Syncthing的源码放到GOPATH中,并且目录为:“$GOPATH/src/github.com/syncthing/syncthing”。
首先建立源码存放目录:“$GOPATH/src/github.com/syncthing/syncthing”,最后一个目录是最终存放源码的目录。
下载Syncthing源代码:我们可以采用两种方式得到Syncthing源代码。
1,直接下载压缩包:这种方式比较简单、直接、更快,我就是采用这种方式!下载链接:https://codeload.github.com/syncthing/syncthing/zip/master
如果你使用下载压缩包方式得到源码,下载完源码压缩包之后,解压缩,随后把解压缩的源码拷贝到“syncthing”目录里面去,最终目录结构如下图:

2,使用Git克隆源码:使用这种方式前提是你已经正确安装了Git,可以用Git获取源码!
这种方式有的时候很慢,所以我现在不采用了。打开DOS窗口,进入上面建立的syncthing目录,随后输入命令:
git clone https://github.com/syncthing/syncthing

得到源码后,最终的目录结构和上面图片显示完全一样!!!
二,用Gogland打开Syncthing工程:对于刚刚使用Gogland或刚开始使用Go语言的朋友这个步骤很关键,相信大家看过我的这篇博客之后,以后这个步骤不是问题了!!
启动Gogland,如果第一次使用Goland,会让你选择新建还是打开已经存在的工程,选择打开已经存在工程,随后选择Syncthing工程目录,那么多目录,到底哪个才是Syncthing工程目录呢?通用判断方法:源码上层目录。Goland为我们提供了另外一种简单判断方法,就是通过图标判断,Goland中工程目录和其它图标不一样,一眼就能判断出来,如下图:

三,编译Syncthing前的准备:设置Syncthing的GOROOT和GOPATH!
1,点击顶部菜单”File“->"Settings",打开系统设置对话框。

2,设置Syncthing的GOROOT。

3,设置Syncthing的GOPATH,设置完毕后点击”OK“按钮退出就可以了。

四,编译Syncthing:
1,在syncthing目录下的"cmd"下面,还有一个"syncthing"目录,这个是Syncthing的主程序,我就是要编译和运行它,点中这个目录,随后点击顶部菜单”Run“->"Run"。

2,

3,终端窗口显示编译出错了,并没有成功编译出来Syncthing,修改配置继续尝试编译。

4,点击”Run“->"Edit Configurations",打开运行配置对话框。

5,找到问题了,”Outout directory“是空的!

6,把”Outout directory“设置为Syncthing的可执行文件目录:”bin“

7,再次编译,显示编译成功了!

8,成功运行Syncthing后的截图:
A,web UI

A,编译出来的可执行文件。

注意问题:现在我编译成功了,因为我的支持库已经编译好了,在我最开始编译时候,因为支持库没有提前编译好,所以出错了,对于Syncthing,打开工程根目录下面的"buid.go"执行此文件就可以了,就会生成这个工程需要的所有支持库,这些支持库最终存放在GOPATH的pkg目录下,顺利生成这些支持库之后,按照上面方法就会顺利编译和运行Syncthing了!
参考:http://www.jianshu.com/p/fd4f91d14d27
Gogland编译Syncthing!的更多相关文章
- Gogland编译LiteIDE工程需要注意问题!
致歉声明:实在抱歉,因为自己对Go语言和Gogland的不熟悉,导致错误判断!无论LiteIDE和Goland都可以顺利使用同一个包下的其它文件内容!!Go语言本身就允许把一个包拆分成不同的文件,下面 ...
- Syncthing源码解析
Gogland编译Syncthing 源码目录说明 Syncthing启动过程分析 在Gogland中对Syncthing的各个模块进行调试 第三方库
- jetbrains golang IDE
非常好的IDE,叫goland. 支持最新的golang1.8了 下载地址: https://www.jetbrains.com/go/ 开始使用手册: https://www.jetbrains.c ...
- Syncthing源码解析 - 源码目录说明!
Syncthing是一个免费开源的p2p软件,Go语言编写的! 官网:https://syncthing.net/ 源码:https://github.com/syncthing/syncthing/ ...
- Syncthing源码解析 - 在Gogland中对Syncthing的各个模块进行调试?
Syncthing的模块很多,各自负责不同的功能,如何能够对各个模块进行调试?Syncthing开发者早就想到这个问题了,允许开发者对任意模块进行单独调试,也允许同时对所有模块调试,调试方式是打印各个 ...
- 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置
Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...
- Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置
简介: 无论办公.文件共享.团队协作还是家庭照片.视频.音乐.高清电影的存储,我们常常都有文件同步和存储的需求.但随着国内各大网盘的花式阵亡或限速,早已没什么好选择了.好吧,我已经转战使用onedri ...
- Go语言 IDE之Gogland配置使用
Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境.Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系.目前正式版尚未发布.官方:htt ...
- Syncthing源码解析 - 启动过程
我相信很多朋友会认为启动就是双击一下Syncthing程序图标,随后就启动完毕了!如果这样认为,对,也不对!对,是因为的确是这样操作,启动了Syncthing:不对是因为在调试Syncthing启动过 ...
随机推荐
- jsp 学习 第1步 - 引入 jstl
通过 eclipse 新建 动态web项目 默认是没有引入 jstl, 则无法JSP页面引入相关标记. <%@ taglib prefix="c" uri="ht ...
- leetcode807
class Solution { public: int maxIncreaseKeepingSkyline(vector<vector<int>>& grid) { ...
- This usually happens because your environment has changed since running `npm install`
此时运行按照提示执行 npm rebuild node-sass 命令,(如若不行,则先运行npm install node-sass命令执行) 然后再运行 node命令,启动服务.
- 22-python爬虫解决gbk乱码问题
转载自: python爬虫解决gbk乱码问题 今天尝试了下爬虫,爬取一本小说,忘语的凡人修仙仙界篇,当然这样不好,大家要支持正版. 爬取过程中是老套路,先获取网页源代码 # -*- coding: ...
- setitemdata 32位 or 64位
我用SetItemData 和GetItemData把数据库一条数据导入到CListctrl 32位下 程序都可以跑 GetItemData能得到自定义类数据 可以64位得不到?
- XtrasReport 标签打印
var lblList = new List<product_LblPrt_tmp>(); using (JL_MFGEntities ctx = new JL_MFGEntities() ...
- Linux文件备份
1.tar -P是否保留根目录 -t查看压缩文件内容 -N 201401010备份日期以后 [root@localhost /]# tar -zcPf /tar/data2.tar.gz /etc/* ...
- idea jvm 优化
修改对应配置文件 64位的是idea64.exe.vmoptions -Xms2048m -Xmx2048m -Xmn1024m -XX:PermSize=512m -XX:MaxPermSize=5 ...
- [转]WCF Data Services OData
http://martinwilley.com/net/data/wcfds.html WCF Data Services About OData Server code Client For .ne ...
- 23 DesignPatterns学习笔记:C++语言实现 --- 1.5 Prototype
23 DesignPatterns学习笔记:C++语言实现 --- 1.5 Prototype 2016-07-21 (www.cnblogs.com/icmzn) 模式理解