说明:我仅仅以这个Syncthing工程为例,来说明如何正确使用Goland编译其他人写的工程,应该具有普遍意义,看懂这篇博客,你想用Gogland去编译其他人的工程,应该不是问题!!

Syncthing是一个免费开源的p2p软件,Go语言编写的!

官网:https://syncthing.net/

源码: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!的更多相关文章

  1. Gogland编译LiteIDE工程需要注意问题!

    致歉声明:实在抱歉,因为自己对Go语言和Gogland的不熟悉,导致错误判断!无论LiteIDE和Goland都可以顺利使用同一个包下的其它文件内容!!Go语言本身就允许把一个包拆分成不同的文件,下面 ...

  2. Syncthing源码解析

    Gogland编译Syncthing 源码目录说明 Syncthing启动过程分析 在Gogland中对Syncthing的各个模块进行调试 第三方库

  3. jetbrains golang IDE

    非常好的IDE,叫goland. 支持最新的golang1.8了 下载地址: https://www.jetbrains.com/go/ 开始使用手册: https://www.jetbrains.c ...

  4. Syncthing源码解析 - 源码目录说明!

    Syncthing是一个免费开源的p2p软件,Go语言编写的! 官网:https://syncthing.net/ 源码:https://github.com/syncthing/syncthing/ ...

  5. Syncthing源码解析 - 在Gogland中对Syncthing的各个模块进行调试?

    Syncthing的模块很多,各自负责不同的功能,如何能够对各个模块进行调试?Syncthing开发者早就想到这个问题了,允许开发者对任意模块进行单独调试,也允许同时对所有模块调试,调试方式是打印各个 ...

  6. 【转】Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置

    Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置 原贴:https://www.cnblogs.com/jackadam/p/8568833.html ...

  7. Syncthing – 数据同步利器---自己的网盘,详细安装配置指南,内网使用,发现服务器配置

    简介: 无论办公.文件共享.团队协作还是家庭照片.视频.音乐.高清电影的存储,我们常常都有文件同步和存储的需求.但随着国内各大网盘的花式阵亡或限速,早已没什么好选择了.好吧,我已经转战使用onedri ...

  8. Go语言 IDE之Gogland配置使用

    Gogland 是 JetBrains 公司推出的 Go 语言集成开发环境.Gogland 同样基于 IntelliJ 平台开发,支持 JetBrains 的插件体系.目前正式版尚未发布.官方:htt ...

  9. Syncthing源码解析 - 启动过程

    我相信很多朋友会认为启动就是双击一下Syncthing程序图标,随后就启动完毕了!如果这样认为,对,也不对!对,是因为的确是这样操作,启动了Syncthing:不对是因为在调试Syncthing启动过 ...

随机推荐

  1. Selenium Webdriver——JS处理rich text(富文本框)

    126邮件正文邮件的rich text 先让selenium切换到iframe中 driver.switchTo().frame(driver.findElement(By.className(&qu ...

  2. 个人tools封装

    /** * jQuery 扩展 */(function ($) { $.fn.extend({ /** * 目标为任意对象元素 * 同时绑定单击和双击事件 */ bindClick: function ...

  3. ubuntu apt-get 代理

    # cat /etc/apt/apt.conf Acquire::http::Proxy "http://109.105.4.17:8119"; Acquire::https::P ...

  4. Information Retrieval

    [Information Retrieval] 1.信息检索/获取(Information Retrieval,简称IR) 是从大规模非结构化数据(通常是文本)的集合(通常保存在计算机上)中找出满足用 ...

  5. FP变更物料编码(增加尾缀)

    FP物料编码增加尾缀的程序,标准物料编码是18位,目前程序中增加尾缀的有三种1.DUMMY 2.SP开头 3.P开头 4.C开头 5.BP对应处理程序如下:1.DUMMY       SAP_MATE ...

  6. Unity3D 游戏在 iOS 上因为 trampolines 闪退的原因与解决办法

    崩溃的情况 进入游戏一会儿,神马都不要做,双手离开手机,盯着屏幕看吧,游戏会定时从服务器那儿读取一些数据,时间一长,闪退了.尼玛问题是神马呢?完全没有头绪,不过大体猜测是因为网络请求导致的,那么好,先 ...

  7. 单源最短路:Dijkstra算法 及 关于负权的讨论

    描述: 对于图(有向无向都适用),求某一点到其他任一点的最短路径(不能有负权边). 操作: 1. 初始化: 一个节点大小的数组dist[n] 源点的距离初始化为0,与源点直接相连的初始化为其权重,其他 ...

  8. golang语言基础(一)

    0.项目的组织结构: GOPATH路径下是src文件夹---->src文件夹下是项目名称---->项目名称下是该项目的各个包名---->各包名下是.go文件(一个包下,无论有多少个. ...

  9. JavaScript 分号使用总结

    没有应该不应该,只有你自己喜欢不喜欢.JavaScript 语法长得 C-like 不代表它本质上和 C 是一类语言,所有直觉性的 "当然应该加分号" 都是保守的.未经深入思考的草 ...

  10. CHANGE DETECTION IN ANGULAR 2

    In this article I will talk in depth about the Angular 2 change detection system. HIGH-LEVEL OVERVIE ...