说明:我仅仅以这个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. SourceTree安装和使用

    SourceTree 安装 需要注意的是在指定路径下添加一个json文件.就可以跳过身份验证,直接运行软件. SourceTree 的SSH配置 软件启动后,如果需要和远程的Gitlab仓库进行交互, ...

  2. Linux学习-linux系统下python升级到python3.6步骤详解,以及遇到的问题解决

    说明:一般linux会自带pyhton2.7 1.首先下载源tar包 可利用linux自带下载工具wget下载,如下所示: wget http://www.python.org/ftp/python/ ...

  3. SVN代理设置

    [SVN代理设置] ~/.subversion/servers文件下可以配置svn的代理. 打开上面那3行,替换为自定义的域名即可.

  4. MyEclipse10.0 采用插件方式安装 SVN(转)

    原文:http://blog.sina.com.cn/s/blog_a5f093b401015uzl.html 一.到官方上下载svn1.8.3,下载后的文件名叫site-1.8.3.zip 地址:h ...

  5. Java中的几种设计模式

    如果从事JAVA相关的开发,都不可避免的要用到抽象和封装,这是JAVA的一个特点,同时也是每个开发者必须掌握的,JAVA是这样,Android更是如此.而设计模式就是告诉我们应该如何写出高效且更具应用 ...

  6. SOCKET, TCP/UDP, HTTP, FTP 浅析

    SOCKET, TCP/UDP, HTTP, FTP (一)TCP/UDP,SOCKET,HTTP,FTP简析   TCP/IP是个协议组,可分为三个层次:网络层.传输层和应用层: 网络层:IP协议. ...

  7. ajax406错误

    如上,ajax请求时一直返回error,但是后台已经正确返回.网上给出的解决办法是spring3.*的,但我的是sppring 4.*的,应该不适用,我也没试. 思索一下,406 not accept ...

  8. windows 安装git

    搭建环境:windo server 2012 方案: 服务器端:gitblit.下载地址:http://www.gitblit.com/ 客户端:git for windows.下载地址:https: ...

  9. Castle ActiveRecord学习(七)使用日志

    暂无 参考:http://terrylee.cnblogs.com/archive/2006/04/14/374829.html

  10. 浅析JavaScript访问对象属性和方法及区别

    属性是一个变量,用来表示一个对象的特征,如颜色.大小.重量等:方法是一个函数,用来表示对象的操作,如奔跑.呼吸.跳跃等. 在JavaScript中通常使用”."运算符来存取对象的属性的值.或 ...