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启动过 ...
随机推荐
- JSR 303 - Bean Validation 简介及使用方法
参考:https://blog.csdn.net/xlgen157387/article/details/46848507 自己写的验证: /** * * @ClassName: BeanValida ...
- 理解C# 4 dynamic(4) – 让人惊艳的Clay(转)
作者:Justrun名字来自<阿甘正传>,是希望自己能够更更傻一点. link: http://www.cnblogs.com/JustRun1983/p/3529157.html 理 ...
- VS2008项目移植到Linux
不少人都遇到过这种情况:在Windows下用Visual Studio工具开发的程序需要移植到Linux系统中,做成Linux版本的,但程序比较大,在Linux上又离不开Make,手动编写Makefi ...
- tfrecord
制作自己的TFRecord数据集,读取,显示及代码详解 http://blog.csdn.net/miaomiaoyuan/article/details/56865361
- HDFS Architecture Notes
[HDFS Architecture Notes] 1.Moving Computation is Cheaper than Moving Data A computation requested b ...
- vue.js和angular.js的区别
关于Vue的描述: HTML模版+JSON数据,再创建一个Vue实例,就这么简单 关于Angular的描述: AngularJS是为了克服HTML在构建应用上的不足而设计的.HTML是一门很好的为静态 ...
- idea如何设置注释作者信息
什么情况下使用? 在建一个新的类的时候 有注释信息 如下图所示 实现步骤 1 打开idea后 点击File后 选择Settings..如下图 2 打开后打开 file and code t ...
- WPF 绑定备忘单
Part I – Common Examples Basic Binding {Binding} Bind to current DataContext. {Binding Name} Bi ...
- (转)【javascript基础】原型与原型链
原文地址:http://www.cnblogs.com/allenxing/p/3527654.html 前言 原型是什么 理解原型对象 原型对象 isPrototypeOf hasOwnProper ...
- DW2.0
一.DW2.0从企业的角度,吸引企业的原因: 1.数据仓库基础设施的成本不再持续增长.在第一代数据仓库中,技术基础设施的成本是不断增长的,随着数据量的增长,基础设施的成本会以指数级增长.但是使用DW2 ...