暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

c,go混合开发的后台移植部署

囧囧妹 2019-10-17
237

之前花了两周完成了一款简单的服务器后台设计和开发,一直在mac上开发和调试,今天要部署到服务器上,简单记录如下:

服务器:

国产芯片 mips64平台

后台采用的c语言和go语言开发

web框架采用的beegobee工具

跨语言通信用的protobuf

现在聊聊部署。


go环境安装

下载对应的mips平台go源码,执行./all.bash

编写个测试验证:


Protobuf安装

1,下载protobuf源码protobuf-master.ziphttps://github.com/protocolbuffers/protobuf

进入解压目录,运行autogen.sh生成configure文件

2,执行configure文件

./configure

3make & make install

4,下载c的插件源码protobuf-c-master.ziphttps://github.com/protobuf-c/protobuf-c

解压,进入解压目录和上述安装步骤类似,如果遇到问题,请百度,一般已有解决办法,如配置pkg的环境变量,动态库加载问题,或者需要一些其它依赖。

5,验证protoc-c

简单编写proto文件,编译生成对应的pb.cpb.h

6,下载go的插件源码protobuf-master.ziphttps://github.com/golang/protobuf

    将里面的内容解压到$GOPATH/github.com/golang/protobuf

进入$GOPATH/github.com/golang/protobuf/protoc-gen-go/

执行go build生成protoc-gen-go

将其拷贝到$GOPATH/bin/

7,验证protogo插件

将刚才生成的pb.cpb.h删除,只剩下test.proto,编译protoc --go_out=. test.proto,生成对应的test.pb.go


编译后台

进入后台的代码目录,运行make编译后台程序,后台程序依赖protobuf,编译成功,启动后台。


Beegobee安装

最开始以为需要在mips平台安装,后来发现go build源码的时候报了很多错,基本都是数据变量没有定义,后来发现beehttps://github.com/beego/bee)源码目录下beego/bee/vendor/golang.org/x/sys/unix/ 只有amd64386arm64armfreebsd的数据定义,没有mips相关的任何东西,也是一阵迷茫。后来想到go的跨平台编译,于是直接在macGOOS=linux GOARCH=mips64le go build main.go直接生成main,将beego(源码路径https://github.com/astaxie/beego)项目下的main替换成刚生成的main,然后将整个web项目打包,直接上传到mips服务器,运行./main,打开网页验证,完全没有问题,不得不服这句话 ---- go是互联网时代的c

至此整个项目部署成功。


文章转载自囧囧妹,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论