【解决方案】火山服务器编译fyne界面库Linux版
本帖最后由 创世魂 于 2025-5-22 22:35 编辑CGO介绍:
就是在go语言中调用了c代码,根据相关资料介绍,调用了c代码的go语言无法实现跨平台编译,也就说无法实现在Windows平台上编译linux程序。
当然也不是完全没办法。
方法1:使用WLS(Windows平台下的linux子系统)大白话意思就是,Windows自带的linux虚拟机。
方法2:使用docker好像也可以解决。(暂时没研究出来,如果研究出来了我在出个教程)
下面按照教程一步一步就基本可以实现:
一、安装wsl(已安装可以忽略)
这里提供了阿里网盘下载地址,https://www.alipan.com/s/bs3tA1m4hYU
也可以自己去GITHUB下载:https://GITHUB.com/microsoft/WSL/releases
二、打开cmd命令行工具
(这个就很简单了,不介绍具体步骤了)
三、开始输入命令
输入命令:
wsl --install -d Ubuntu
输入上述命令是用来安装linux系统的,安装过程和网络环境和系统处理速度有关系,耐心等待,安装完成会自动启动。这时候会提示你如下内容,意思是让你输入用户名,XXX就是你的linux系统的用户名称,随便输入一个或者用默认的也可以。
Create a default Unix user account:XXX
按下回车后会提示:
New password:
这里是让你输入系统密码的,正常输入密码即可,但是输入的密码会自动隐藏,这是正常的。
继续按下回车会提示:
Retype new password:
这里让你把密码重新输入一遍,重新输入一下即可。
继续回车就提示一堆信息,表示系统启动成功之类的。
passwd: password updated successfully
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.6.87.1-microsoft-standard-WSL2 x86_64)
* Documentation:https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
System information as of Thu May 22 17:30:26 CST 2025
System load:0.0 Processes: 33
Usage of /: 0.1% of 1006.85GB Users logged in: 0
Memory usage: 3% IPv4 address for eth0: 172.21.84.47
Swap usage: 0%
This message is shown once a day. To disable it please create the
/home/XXX/.hushlogin file.
然后CMD的命令行会变成如下格式:
xxx@xxx:/mnt/c/Users/xx$
这里你就可以输入一些linux中用的命令行,执行一些linux命令:
接下来输入以下命令来下载一些编译环境:
首先输入,这是用来更新系统软件包之类的命令。
sudo apt update && sudo apt upgrade -y
首次输入命令按下回车后,会提示让你输入密码,你就输入刚才的系统密码就行。
password for xxx: 输入你的密码
等待上个命令执行完毕后,执行下面的命令,下载一些环境包。
sudo apt install gcc-x86-64-linux-gnu g++-x86-64-linux-gnu -y
等待下载完毕后继续输入命令行,下载其它的环境。
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu -y
等待下载完毕后,下载go语言环境包:
sudo apt install golang -y
下载完毕后执行,看看go语言是否下载完毕。
go version
如果下载完毕会提示:go version goXXXX linux/amd64
继续下载:
sudo apt install gcc-x86-64-linux-gnu
特别注意:如果下载失败之类的,可能是代理有问题,更换一下代理地址:
命令:go env -w GOPROXY=https://goproxy.cn,direct
四、打开火山项目
比如你fyne界面库项目,点击菜单生成活动项目目标代码,双击跳转,打开源码目录。
进入project 文件夹,找到mod文件。
打开网盘中提供的“GO项目模块转Linux.exe”程序文件,
网盘地址:https://www.alipan.com/s/bs3tA1m4hYU
打开这个小工具的作用,是将这个go.mod文件里面的路径格式转换为linux系统可以识别的格式,否则无法正常编译。
提供文件路径后,点击第二个按钮
提示转换成功:
五、继续在wls命令行中
输入:
这个命令的作用是进入目录。
如果你的项目源码路径是:G:\Desktop\fyne\_int\fyne\release\project
在命令行中需要提供:/mnt/g/Desktop/fyne/_int/fyne/release/project
完整命令行如下:
cd /mnt/g/Desktop/fyne/_int/fyne/release/project
进入后效果如下:xxx@xxx:/mnt/g/Desktop/fyne/_int/fyne/release/project$
继续调用命令:
export CC=x86_64-linux-gnu-gcc意思是切换编译器
继续调用命令:
myapp-linux就是你的程序名字,自己随便起一个就可以了。
go build -o myapp-linux ./main/s_startup.go开始编译,第一次编译比较慢,耐心等待一下。
编译完毕后,你就会得到一个30多兆的程序文件,这个也没办法,go语言编译出来的就是这么大。。
将其放到比如深度系统,双击就可以打开。
以上是第一次使用:
第二次打开cmd编译的时候:
1、输入命令,启动系统
wsl.exe -d Ubuntu
2、输入命令进入项目路径:
cd G:\Desktop\fyne\_int\fyne\release\project
3、输入命令编译
go build -o myapp-linux ./main/s_startup.go
常用的编译环境命令行:
sudo apt update
# x86_64 (amd64) → Linux
sudo apt install gcc-x86-64-linux-gnu g++-x86-64-linux-gnu
# ARM64 (aarch64) → Linux
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
# ARMv7 → Linux
sudo apt install gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
# MIPS → Linux
sudo apt install gcc-mips-linux-gnu g++-mips-linux-gnu
# RISC-V 64 → Linux
sudo apt install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu
常用的切换编译器命令:
export CC=x86_64-linux-gnu-gcc
export CC=aarch64-linux-gnu-gcc
export CC=arm-linux-gnueabihf-gcc
export CC=mips-linux-gnu-gcc
GO哪都好 就是编译后太大 MIPS架构的elf 啥也没有就是2MB 用MIPS的嵌入式设备 有时候可操作的空间才2-3MB:噜阿噜.
不过总之还得感谢吴老板 不是火山GO我还得靠AI生产C代码来制作elf 牛的牛的 好好好 j519948746 发表于 2025-5-22 22:43
GO哪都好 就是编译后太大 MIPS架构的elf 啥也没有就是2MB 用MIPS的嵌入式设备 有时候可操作的空间才2-3M ...
这个没办法,go就是适合开发嵌入式设备。嵌入式还得用c语言来写。
页:
[1]