最近在学习golang的Leaf游戏服务器框架(官方github),官方的安装步骤,非常简单,如下图:
我在安装的时候也遇到一些疑问,因此记录下来我的实操步骤!
1、我的现有GOPATH=E:\Go,src目录下有一些做过的项目
2、获取LeafServer,我在src目录下clone的,遵循以前的原则,项目文件都放到GOPATH的src目录下
git clone https://github.com/name5566/leafserver
3、设置 leafserver 目录到 GOPATH 环境变量后获取 Leaf
go get github.com/name5566/leaf
4、切换到leafserver目录,然后编译LeafServer
go install server
哦豁,找不到包,为什么呢,切换到leafserver目录,我们惊奇的发现,居然还有一层bin目录、src目录、src下的server才是Leafserver的项目目录
那是不是我切换到leafserver\src再编译呢,会不会就成功了勒?来,我们试试。。。
oh,还是一样的错误,找不到包包,这是怎么回事呢,通过报错信息,我们可以得出2个结论,编译的时候,
1、先从GOROOT去找包包,
2、如果GOROOT没有找到包包,再从GOPATH去找包包(报错信息里面的GOPATH路径也和我最开始说的是一致的)
这2个结论是没毛病的!
通过对比发现,leafserver下面的目录结构和我现有GOPATH下的目录结构几乎是一样的,都有bin目录,都有src目录,然后src目录下有具体的项目目录,(至于pkg目录嘛是我之前做其他项目的时候使用go mod方式管理依赖下载的库文件目录,这里不用管)
到这里,再回头来看【设置 leafserver 目录到 GOPATH 环境变量】这句话,是不是就能理解了!!!
最开始的时候,心里想的是:GOPATH我已经有了呀,而且我现在就是把代码放到GOPATH的src目录下呢,为什么还要设置呢,我其他的项目都没有额外设置GOPATH呀,也可以正常运行呀
现在,明白了原来leafserver的项目结构和我的Go目录结构是一样的,我的Go目录现在是在GOPATH中,那么也需要把leafserver加入到GOPATH里面,才能正常运行,而且leafserver不一定要放在E:\Go\src目录下,放在其他任何地方都可以,只要保持leafserver的目录结构不变即可
5、设置环境变量,并验证
可以看到,现在GOPATH有2个路径了,我以前的目录依然还在,现在新增了一个
6、再来编译,可以看到,没有报错了,然后构建,最终得到一个server.exe可执行文件
go build server
7、执行server.exe,这里会有一个错误,提示找不到那个json文件
8、找到报错的地方,在这里:leafserver/src/server/conf/json.go line 22,意思在leafserver/src/server/conf目录去找server.json,但是这个目录没有server.json文件呢,server.json在leafserver/bin/conf目录下,这里有2个解决思路
8.1、把server.json文件放到leafserver/src/server/conf/目录下
8.2、修改代码里面的路径为:bin/conf/server.json(我用的这种,从GOPATH目录开始找 ,这里的GOPATH目录为leafserver,所以直接从下面的bin目录开始找)
再编译
咯咯咯,终于成功了!
总结:安装LeafServer项目,不要纠结于你以前的GOPATH设置
标签:GOPATH,leafserver,Leaf,src,步骤,server,golang,json,目录 From: https://www.cnblogs.com/firstlady/p/17785467.html