Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
Windows里golang交叉编译Linux文件在docker里的centos中运行_创想鸟

Windows里golang交叉编译Linux文件在docker里的centos中运行

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.php.cn/link/b084182f10cd8031300234c7551ef710

Windows中Golang的跨平台编译问题:现在Go语言的跨平台编译变得更加简单了。

设置GOARCH为amd64:

set GOARCH=amd64

设置GOOS为linux:

set GOOS=linux

然后执行

go build

命令,即可生成适用于Linux 64位系统的可执行程序。

go build

编译生成的可执行文件不会带有exe扩展名,这在Linux系统中并不重要。

立即学习“go语言免费学习笔记(深入)”;

如果使用LiteIDE进行编辑,可以选择cross-linux64选项。

# cross-compiler linux amd64

GOROOT设置为:

GOROOT=d:go

GOBIN环境变量可以不设置:

#GOBIN=

设置GOARCH为:

GOARCH=amd64

设置GOOS为:

GOOS=linux

禁用CGO:

CGO_ENABLED=0

设置PATH环境变量:

PATH=D:TDM-GCC-64bin;%GOROOT%bin;%PATH%

设置LiteIDE的GDB:

LITEIDE_GDB=gdb

设置LiteIDE的MAKE:

LITEIDE_MAKE=mingw32-make

设置LiteIDE的终端:

LITEIDE_TERM=%COMSPEC%

设置LiteIDE的终端参数:

LITEIDE_TERMARGS=

设置LiteIDE的执行命令:

LITEIDE_EXEC=%COMSPEC%

设置LiteIDE的执行选项:

LITEIDE_EXECOPT=/C

如果出现

go install: cannot install cross-compiled binaries when GOBIN is set

错误提示,则需要删除GOBIN环境变量设置,并重新启动LiteIDE(或重启计算机)。此时编译生成的可执行文件将带有exe扩展名,这对Linux系统没有影响。

Windows里golang交叉编译Linux文件在docker里的centos中运行2. 在Windows中安装Docker,并搭建CentOS环境,请参考以下链接:

https://www.php.cn/link/08afe31e80612e5ea99ac4daea3b666b

https://www.php.cn/link/12bf6e4ef656f8d8a5b2ee769c747c77

……

……

将

UsePrivilegeSeparation sandbox

修改为

UsePrivilegeSeparation no

。可以使用vi进行修改,或者使用以下命令:

root@b3426410ff43 /# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_configroot@b3426410ff43 /# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

修改完成后,重新启动sshd服务:

/usr/sbin/sshd -D

然后修改root密码:

root@b1b202cf887c /# passwdChanging password for user root.New password:BAD PASSWORD: The password fails the dictionary check - it is based on a dictionary word

密码必须包含数字、字母和符号,且长度大于8个字符:

阿里翻译 阿里翻译

阿里巴巴提供的多语种在线实时翻译网站,支持文档、图片、视频、语音等多模态翻译

阿里翻译 170 查看详情 阿里翻译

New password:Retype new password:passwd: all authentication tokens updated successfully.

启动sshd服务:

root@b1b202cf887c /# /usr/sbin/sshd -DWARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several problems.

然后修改root密码:

passwd root

或者直接使用以下命令修改:

echo "123456qxc$&" | passwd --stdin root

密码必须包含字母、数字和符号,且长度大于8位。

接下来需要将修改后的镜像保存到本地。首先输入

exit

退出容器,然后使用以下命令查看刚运行过的容器:

docker ps -all

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

b3426410ff43 centos:7 “/bin/bash” 4 minutes ago Exited (0) 4 seconds ago centos7ssh

使用

docker commit

命令将修改后的镜像保存到本地:

docker commit b5926410fe60 myimage/centos7-ssh

下次可以输入刚保存的镜像名称启动修改过并安装了ssh服务的镜像。

……

……

接下来只要启动即可:

yum install -y openssh-server

使用

ssh-keygen

命令手动生成密钥:

ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''

修改sshd配置文件:

sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_configsed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

启动ssh服务:

/usr/sbin/sshd -D

接下来是常用命令,将端口映射到宿主机(这里指的是VM分配的Linux系统):

# 退出但不停止容器Ctrl+P+Q

回到Docker下,停止容器

docker stop

提交当前容器到镜像

docker commit

启动新容器,并且进行端口映射

docker run -itd -p 50001:22 /bin/bash

进入容器后再运行ssh服务:

# 进入容器docker attach e04

启动ssh服务

root@e04479245075 /# /usr/sbin/sshd -D

这样,我们就可以通过Windows下的ssh工具访问宿主机的IP和端口来访问容器了。这里的IP和端口是192.168.99.100:50001。

$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEcentos v4 65a70b3c749f 8 hours ago 544MBcentos v3 70f73f55aa5f 11 hours ago 386MBcentos v2 5b324eb3a8c4 11 hours ago 302MBcentos latest 2d194b392dd1 10 days ago 195MB

Administrator@604TFALNDKDKJWCMINGW64 ~$ docker run -itd -p 50001:22 65a /bin/bashe044792450751d0ad3b93fac91d44c5fc03c59fc3e6c91baeda9845f50dd47d2

Administrator@604TFALNDKDKJWCMINGW64 ~$ docker attach e04root@e04479245075 /# /usr/sbin/sshd -D

启动ssh后可能会有提示,但不影响使用:

WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several problems.

使用SecureCRT和SecureFX_HH_x64登录CentOS并连接命令行:

Windows里golang交叉编译Linux文件在docker里的centos中运行用户名是root,密码是刚才修改的包含字母、数字和符号的密码。

Windows里golang交叉编译Linux文件在docker里的centos中运行使用SecureFX上传文件:

Windows里golang交叉编译Linux文件在docker里的centos中运行当前目录是root目录。

在CentOS中执行文件:将应用上传到CentOS系统的root文件夹下,然后回到SecureCRT中。

Windows里golang交叉编译Linux文件在docker里的centos中运行输入

ls -l

命令列出当前目录下的文件。其中

ls

是list的缩写,

-l

参数表示long,列出文件详细信息。每行第一个字符带有x的文件表示有可执行权限,通常是可执行程序。

使用

./filename

命令执行文件,如果不能执行,可以使用

chmod +x filename

命令给文件添加执行权限:

root@e04479245075 ~# ./engineercms.exe-bash: ./engineercms.exe: Permission deniedroot@e04479245075 ~# chmod +x engineercms.exeroot@e04479245075 ~# ./engineercms.exeORM 2018/03/16 23:48:38 register db 
default, sql: unknown driver "sqlite3" (forgotten import?)must have one register DataBase alias named 
default

无法执行是因为应用中引用了基于CGO的sqlite3,而CGO不能跨平台,最好是在Linux系统中搭建环境进行编译。

以上就是Windows里golang交叉编译Linux文件在docker里的centos中运行的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/346756.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
内饰部件脱落 特斯拉召回大部分Cyber​​truck
上一篇 2025年11月5日 20:44:02
OPPO手机隐私便签在哪查看_OPPO手机启用加密笔记本功能教程
下一篇 2025年11月5日 20:44:05

相关推荐

  • Oracle定时任务

    oracle 介绍 oracle job 是应用在数据库层面,用来定时执行存储过程或者 SQL 语句的定时器。 测试数据代码语言:javascript代码运行次数:0运行复制 –建测试表CREATE TABLE TEST_JOB( DATETIME DATE, BEG_DATE VARCHAR2(…

    2026年9月22日
    500
  • 如何配置Android开发环境 Android Studio安装与JDK配置方法

    答案:配置Android开发环境需先安装JDK并设置环境变量,再下载安装Android Studio,配置SDK及虚拟设备,最后创建项目测试。具体步骤包括:1. 安装JDK 17并配置JAVA_HOME和Path;2. 从官网下载Android Studio并安装,自动集成SDK;3. 通过SDK …

    2026年9月22日
    100
  • Linux系统如何解压rar文件

    大家好,很高兴再次与大家见面,我是你们的老朋友全栈君。 1、获取Linux版本的rar软件 前往官方网站,下载最新版的Linux rar软件包。 2、解压已下载的安装文件 使用以下命令解压压缩包: tar -xzpvf rarlinux-x64-610b2.tar.gz 3、编译并安装软件 进入解压…

    2026年9月22日
    100
  • Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制

    Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制Sublime开发MySQL备份与恢复脚本方案_实现定时导出与自动导入机制

    使用sublime编写mysql备份与恢复脚本能提升数据安全性与操作效率;1.通过shell或python调用mysqldump实现自动备份,建议加入时间戳、压缩存储及权限设置;2.结合cron配置定时任务实现自动化,注意使用绝对路径并添加日志记录;3.编写恢复脚本导入sql文件,需确保数据库结构一…

    2026年9月22日 • 用户投稿
    000
  • NFV中:DPDK与SR-IOV应用场景及性能对比

    NFV中:DPDK与SR-IOV应用场景及性能对比NFV中:DPDK与SR-IOV应用场景及性能对比NFV中:DPDK与SR-IOV应用场景及性能对比NFV中:DPDK与SR-IOV应用场景及性能对比

    关于作者 作者简介: 张帅,Wechat:yorkszhang 网站:www.flowlet.net DPDK和SR-IOV目前主要用于提升IDC(数据中心)中的网络数据包处理速度。然而,在NFV(网络功能虚拟化)场景下,DPDK与SR-IOV各自的应用场景和优缺点是什么呢?本文将从以下几个方面来探…

    2026年9月22日 • 用户投稿
    000
  • 谷歌浏览器官网直接进入 Chrome浏览器官方登录入口

    谷歌浏览器官网直接进入方式为访问https://www.google.com/chrome/,该网站是Chrome官方登录入口,提供跨平台同步、V8引擎加速、地址栏集成搜索、自动填充表单等核心功能,支持极简界面、深色模式、自定义新标签页及侧边栏服务,具备安全浏览、隐私沙盒、密码检查和无痕模式等安全机…

    2026年9月22日
    100
  • Linux命令行中last命令的实用技巧

    last命令用于查看Linux用户登录历史,读取/var/log/wtmp文件。1. 查看指定用户登录记录:执行last username(如last alice)可审计特定账户活动;2. 限制输出行数:使用last -n 10或last -10避免刷屏,便于脚本处理;3. 识别远程登录来源:pts…

    2026年9月22日
    000
  • Laravel 8 注册成功但登录失败的解决方案

    本文针对 Laravel 8 中使用 php artisan ui:auth 生成的认证系统,注册功能正常但登录功能失效的问题,提供了一种解决方案。通过重写 LoginController 中的 username() 方法,将认证字段从默认的 email 修改为 username,从而解决登录失败的…

    2026年9月22日
    000
  • rm -rf 误删文件?别急,或许有救!

    rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!rm -rf 误删文件?别急,或许有救!

    立即采取行动! 在生产环境中,我们应尽量避免进行风险操作。但如果不慎犯错,如何挽救呢?让我分享一个故事:上周我为了打包一个应用,需要整理Ubuntu 16.04上的线上数据,不小心删除了一个数据文件,幸而最终有惊无险,现记录如下。 extundelete 我的恢复计划主要依赖于一个工具——extun…

    2026年9月22日 • 用户投稿
    000
  • windows怎么设置自动清理回收站_windows自动清理回收站的设置步骤

    可通过存储感知、组策略或任务计划程序设置回收站自动清理。首先启用存储感知并配置回收站文件保留时间;其次专业版用户可使用组策略编辑器精细管理回收站容量与清理周期;最后通过任务计划程序创建定时任务,运行PowerShell命令“Clear-RecycleBin -Force”实现自动化清理。 如果您发现…

    2026年9月22日
    000
  • VSCode高效配置Node.js:npm集成、中文报错、断点调试

    答案:高效配置VSCode与Node.js需确保Node.js和npm为最新版,利用集成终端运行命令,通过jsconfig.json或tsconfig.json优化项目配置,解决中文乱码需设置终端编码为UTF-8并选择支持中文的字体,调试核心是正确配置launch.json文件,使用pwa-node…

    2026年9月22日
    400
  • unix怎么安装php_unix系统安装php环境指南

    首先确认系统环境并检查是否已安装相关软件,然后选择包管理器或源码编译方式安装PHP;推荐使用包管理器快速安装,如Debian/Ubuntu用apt,CentOS/RHEL/Fedora用yum或dnf,FreeBSD用pkg;安装后配置Web服务器,Apache需加载mod_php或集成PHP-FP…

    2026年9月22日
    300
  • windows8桌面图标有蓝色阴影怎么去掉_windows8取消桌面图标蓝色底纹的方法

    1、调整视觉效果设置,取消“在桌面上为图标标签使用阴影”可消除蓝色背景;2、解除桌面Web项目锁定并清除Web内容;3、专业版用户可通过组策略禁用Active Desktop功能以彻底解决问题。 如果您发现Windows 8系统中的桌面图标带有蓝色阴影或底纹,这通常是由于系统视觉效果设置或桌面项目锁…

    2026年9月22日
    100
  • itextpdf freemarker渲染

    关于打印pdf操作的需求,经过研究,发现以下两种方法: 在现有的模板上进行编辑,这种方法操作难度较大。而通过FreeMarker生成静态页面,然后转换为HTML,操作更为顺畅。动态生成PDF的方法在网上参考较多,经过对比,我认为使用FreeMarker结合IText生成PDF最为简单。参考链接为ht…

    2026年9月22日
    300
  • VSCode精简配置Git:中文提交记录、分支可视化、冲突解决

    首先解决中文乱码需配置Git和VSCode编码为UTF-8,其次通过GitLens或Git Graph实现分支可视化,最后利用VSCode内置的冲突解决工具高效处理合并冲突,全面提升Git使用体验。 在VSCode里用Git,我总觉得能再顺手点。特别是处理中文提交信息、想直观看看分支图,或者面对恼人…

    2026年9月22日
    500
  • Linux驱动开发-编写DS18B20驱动

    Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动Linux驱动开发-编写DS18B20驱动

    引言 本文详细介绍了如何在linux系统下为ds18b20温度传感器编写驱动程序,以测量环境温度,并将ds18b20注册为字符设备,通过文件接口将温度数据传递给应用层。 本文使用的开发板是友善之臂的Tiny4412开发板,搭载三星的Exynos-4412 CPU,主频为4核1.5GHz,运行的Lin…

    2026年9月22日 • 用户投稿
    100
  • Reinstalling Alpine Linux on a Lighthouse Instance

    Start by creating an instance with Debian or your preferred operating system. Log into the instance. Download the Arch Linux ISO for booting. Although…

    2026年9月22日
    000
  • VSCode调试FPGA工程的技巧(结合Vivado,快速定位问题)

    vscode在fpga开发中并非替代vivado,而是作为高效辅助工具提升开发效率。1. 在代码编写方面,vscode提供 superior 的语法高亮、自动补全和代码管理功能,显著优化verilog、systemverilog和tcl脚本的编写体验,并通过git实现无缝版本控制;2. 在仿真与自动…

    2026年9月22日
    1200
  • win10激活失败怎么办_win10系统激活错误原因及解决方案

    首先验证产品密钥正确性并重新输入,随后通过设置中的激活疑难解答工具自动修复问题,接着使用管理员命令提示符执行slmgr命令重置激活状态,同时运行sfc /scannow检查系统文件完整性,对于预装系统可查询OA 3.0出厂密钥进行激活。 如果您在尝试激活Windows 10系统时遇到失败提示,可能是…

    2026年9月22日
    300
  • 如何查看Linux文件系统类型 df -T与lsblk -f命令对比

    如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比如何查看Linux文件系统类型 df -T与lsblk -f命令对比

    在linux中查看文件系统类型时,df -t 适合查看已挂载分区的文件系统,而 lsblk -f 可查看所有块设备信息。1. df -t 显示已挂载的文件系统类型、磁盘使用情况及挂载点,适用于快速了解当前挂载目录所用文件系统;2. lsblk -f 列出包括未挂载设备的详细信息,如 uuid、lab…

    2026年9月22日 • 用户投稿
    300

发表回复

登录后才能评论
关注微信