• Gogland编译Syncthing!


    说明:我仅仅以这个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

  • 相关阅读:
    UOS、鸿蒙、麒麟全面出击,国产系统能否干掉Windows?
    黑客给疫情添乱
    人工智能与信息安全
    作为一个程序员,告诉你一些编码知识
    Linus Torvalds 宣布新版Linux系统内核发布
    linux系统root密码忘记了怎么办
    DevOps与NoOps现状分析
    Nginx服务详细介绍
    博客园“可运行"代码
    让setTimeout支持链式
  • 原文地址:https://www.cnblogs.com/sunylat/p/6372380.html
Copyright © 2020-2023  润新知