fastdfs windows部署_Go在windows下编译Linux可执行文件

欢迎关注我的头条号:Wooola,专注于Java、Golang、微服务架构,致力于每天分享原创文章、快乐编码和开源技术。

前言

c1da22ea947d95dc2b025e7466ca8cb4.png

最近楼主做了一个滑块验证码登录功能,但有个问题,悲观估计一天大约会产生两百多G临时图片放在fastdfs文件服务器上。

54a429778c9e648c96eb873c5400afdf.png

所以楼主基于go(新手)的goroutine多线程写了一个清理程序:imgcleaner,来缓解文件服务器压力。本文将重点描述Go在windows下编译Linux可执行文件全过程,分享给大家,希望对大家有所帮助。

作为go新手,最好的学习方式就是亲自动手加用笔记整理。

本文分为三部分:

  1. 第一部分 编译构建
  2. 第二部分 linux环境部署
  3. 第三部分 遇到问题及解决

第一部分 编译构建

在Goland ide中找到需要发布的程序入口文件:main.go

cd7c6d7b558345fe337f25635c192c2d.png

打开ide terminal窗口

548f6b8c668f05b71fa2704521998afc.png

设置编译linux二进制文件环境变量

958970c82af05033cc9ce1207f3963b1.png
set CGO_ENABLED=0set GOARCH=amd64set GOOS=linux

构建

go build main.go

输出linux二进制可执行文件:main,如果觉得名字不直观,可以修改。比如楼主重命名为:imgcleaner,意为图片清理器。

d9c2680e96ef79457206ec818e9be884.png

第二部分 linux环境部署

修改imgcleaner文件权限

chmod -R 777 imgcleaner

用nohup设置后台执行,同时设置输出日志文件:imgcleaner.log,配置参数文件:

-conf="/home/aiuap_cj/imgcleaner/conf.toml"

最终部署命令:

nohup ./imgcleaner -conf="/home/aiuap_cj/imgcleaner/conf.toml" ->imgcleaner.log &

效果

a11dff67ab0cced8fb94a5b9ecf6b161.png

第三部分 遇到问题及解决

问题1 unrecognized import path "golang.org/x/sys/unix"

d36d0a679644f8076b9aa860e3f66040.png

....github.comSirupsenlogruserminal_check_unix.go:5:8: cannot find package "golang.org/x/sys/unix" in any of:

C:Gosrcgolang.orgxsysunix (from $GOROOT)

D:gitgophersrcgolang.orgxsysunix (from $GOPATH)

解决

在src目录下,创建“golang.org/x”目录,然后打开cmd窗口,找到对应的目录,用git clone命令从https://github.com/golang/sys.git下载相关文件。

190805ce61a2deb82e9e27c0c790bbb4.png

问题2 unrecognized import path "golang.org/x/*"的解决办法(网上找的)遇到的坑

先用git clone命令,克隆https://github.com/MXi4oyu/golang.org的代码到本地,然后把golang.org目录拷贝到src目录下。但是当用go build的时会报错。

syscall_linux.go:38:2: expected 'STRING' found 'return'

解决

留下D:gitgophersrcgolang.orgxsys这个目录下的文件,其他都删除,再次用go build,问题解决。

2b098cb75752e2e868a21510a88d4f39.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/472795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我们并没有觉得MapReduce速度慢,直到Spark出现

learn from 从0开始学大数据(极客时间) Spark 拥有更快的执行速度 更友好的编程接口 迅速抢占 MapReduce 的市场份额,成为主流的大数据计算框架 val textFile sc.textFile("hdfs://...") // 根据 HDFS 路径生成一个输入数据 RDD v…

LeetCode 1178. 猜字谜(状态压缩+枚举二进制子集+哈希)

文章目录1. 题目2. 解题1. 题目 外国友人仿照中国字谜设计了一个英文版猜字谜小游戏,请你来猜猜看吧。 字谜的迷面 puzzle 按字符串形式给出,如果一个单词 word 符合下面两个条件,那么它就可以算作谜底: 单词 word 中包含谜面 …

elasticsearch 工作原理_【154期】面试官:你能说说 Elasticsearch 查询数据的工作原理是什么吗?...

点击上方“Java面试题精选”,关注公众号面试刷图,查缺补漏>>号外:往期面试题,10篇为一个单位归置到本公众号菜单栏->面试题,有需要的欢迎翻阅阶段汇总集合:一百期面试题汇总面试题ES 写入数据的工…

java会被淘汰吗_Java不会被淘汰的12个原因

如今,面对曾经在程序员中被各种新技术掩盖直至堙灭的技术值得怀念。犹如COBOL这当年被老程序员们尊为神器的语言如今也基本没有价值。而Java作为现代程序员的中坚力量在这点上或许会成为下一个COBOL。有关JAVA的技术卖出多少本书已经是一个很久远的记忆了。现处中年…

java操作redis的操作_Java操作redis简单示例

第一:安装Redis首先我们要安装Redis,就像我们操作数据库一样,在操作之前肯定要先创建好数据库的环境。Redis的下载可以百度一下,或者打开下面的下载链接:https://github.com/MSOpenTech/redis也可以从我的百度网盘下载…

myeclipse启动报JVM terminated. Exit code=1

报错信息如图: 解决办法: 删除当前workspaces下文件夹,路径为:%Workspaces%/.metadata/.plugins/org.eclipse.core.runtime转载于:https://www.cnblogs.com/tancp/p/4102866.html

Java 常用类库

文章目录1. String、StringBuffer2. 基本数据类3. System 类4. Runtime 类5. Date、Calendar、DateFormat 类6. Math、Random 类7. hashCode() 方法8. 对象克隆1. String、StringBuffer public class testString {public static void main(String [] args){String s "Mi…

git如何选择性合并_小姐姐用 10 张动图,教会你 Git 命令使用

优质文章,第一时间送达!来源:机器之心git merge、git rebase、git reset、git revert、git fetch、git pull、git reflog……你知道这些 git 命令执行的究竟是什么任务吗?如果你还有些分不清楚,那千万不能错过这篇文章…

传智播客java测试题_传智播客Java基础综合测试题

传智播客Java基础综合测试题传智播客Java基础综合测试题第一关1.动手完成 Java 开发包的安装,并设置环境变量 Path 。2.编写一个程序,要求程序运行后在屏幕上输出:***************************This is my first java program!***************…

为何Spark更高效?

learn from 从0开始学大数据(极客时间) Spark 的计算阶段 Hadoop MapReduce 简单粗暴地根据 shuffle 将大数据计算分成 Map 和 Reduce 两个阶段,然后就算完事了。 而 Spark 更细腻一点,将前一个的 Reduce 和后一个的 Map 连接起来…

iphone个系列尺寸_最值得入手的4款iPhone,都是内行人的最爱,拿出去有面子

现如今手机市场里最受大众欢迎的手机应该就是iPhone了,虽然iPhone的价格都普遍偏高,但是大家依然还是非常青睐于它,主要是因为iPhone的配置和性能确实是比其他机型要好,搭载的A系列仿生芯片和iOS系统都提升了它的性能,…

protocol(协议) 和 delegate(委托)也叫(代理)---辨析

protocol和delegate完全不是一回事。协议(protocol),(名词)要求。就是使用了这个协议后就要按照这个协议来办事,协议要求实现的方法就一定要实现。委托(delegate),(动词)助手。顾名思义就是委托…

天池 在线编程 能否转换

文章目录1. 题目2. 解题1. 题目 给两个字符串 S 和 T, 判断 S 能不能通过删除一些字母(包括0个)变成 T. 样例1 输入: S "lintcode" 和 T "lint" 输出: true样例2 输入: S "lintcode" 和 T "ide" 输出: true样例3 输入: S "…

java 析构函数_C++与Java的区别(一)

一,前言网上经常看到编程语言之争,大伙儿皈依到不同门派,各自怀抱信仰,时不时还发生点儿“冲突”。这其中,C和Java的优劣,十多年前就常吵的火热。然而时代在进步,技术在发展,满街早已…

天池 在线编程 圣杯咒语

文章目录1. 题目2. 解题1. 题目 一段英文中同时出现大小写的字母中最大的那一个,现在给你一段英文,你能把这个字母找出来嘛? ps:一定存在答案 英文长度不会超过100000 样例 1: 输入:"aAbb" 输出&#xf…

crawler_java_数据平台结构

大数据生态架构 转载于:https://www.cnblogs.com/cphmvp/p/4105674.html

天池 在线编程 卡牌游戏(01背包)

文章目录1. 题目2. 解题1. 题目 你跟你的朋友在玩一个卡牌游戏,总共有 n 张牌。 每张牌的成本为 cost[i] 并且可以对对手造成 damage[i] 的伤害。 你总共有 totalMoney 元并且需要造成至少 totalDamage 的伤害才能获胜。 每张牌只能使用一次,判断你是否…

bean validation校验方法参数_Spring Boot 之使用 validation 验证参数

前言文本已收录至我的GitHub仓库,欢迎Star:https://github.com/bin392328206/six-finger种一棵树最好的时间是十年前,其次是现在我知道很多人不玩qq了,但是怀旧一下,欢迎加入六脉神剑Java菜鸟学习群,群聊号码:54968483…

LeetCode 891. 子序列宽度之和(数学)

文章目录1. 题目2. 解题1. 题目 给定一个整数数组 A ,考虑 A 的所有非空子序列。 对于任意序列 S ,设 S 的宽度是 S 的最大元素和最小元素的差。 返回 A 的所有子序列的宽度之和。 由于答案可能非常大,请返回答案模 10^97。 示例&#x…

hive建表语句_Hive数据如何同步到MaxCompute之实践讲解

摘要:本次分享主要介绍 Hive数据如何迁移到MaxCompute。MMA(MaxCompute Migration Assist)是一款MaxCompute数据迁移工具,本文将为大家介绍MMA工具的功能、技术架构和实现原理,再通过实际操作MMA,演示将Hive数据迁移到MaxCompute。…