递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 113|回复: 2
打印 上一主题 下一主题

[服务器] 【解决方案】火山服务器编译fyne界面库Linux版

[复制链接]

454

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
43563
跳转到指定楼层
楼主
发表于 昨天 22:08 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 创世魂 于 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命令行工具

(这个就很简单了,不介绍具体步骤了)

三、开始输入命令

    输入命令:
   
  1. 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命令:
      接下来输入以下命令来下载一些编译环境:

     首先输入,这是用来更新系统软件包之类的命令。

  1. sudo apt update && sudo apt upgrade -y
复制代码

     首次输入命令按下回车后,会提示让你输入密码,你就输入刚才的系统密码就行。

[sudo] password for xxx: 输入你的密码

   等待上个命令执行完毕后,执行下面的命令,下载一些环境包。

  1. sudo apt install gcc-x86-64-linux-gnu g++-x86-64-linux-gnu -y
复制代码


      等待下载完毕后继续输入命令行,下载其它的环境。

  1. sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu -y
复制代码


       等待下载完毕后,下载go语言环境包:

  1. sudo apt install golang -y
复制代码


       下载完毕后执行,看看go语言是否下载完毕。

  1. go version
复制代码


     如果下载完毕会提示:go version goXXXX linux/amd64
   
      继续下载:
   
  1. 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  
完整命令行如下:
  1. cd /mnt/g/Desktop/fyne/_int/fyne/release/project
复制代码

进入后效果如下:
xxx@xxx:/mnt/g/Desktop/fyne/_int/fyne/release/project$

继续调用命令:
  1. export CC=x86_64-linux-gnu-gcc
复制代码
意思是切换编译器

继续调用命令:
myapp-linux就是你的程序名字,自己随便起一个就可以了。
  1. 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




安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

16

主题

52

帖子

396

积分

中级会员

Rank: 3Rank: 3

积分
396
沙发
发表于 昨天 22:43 | 只看该作者
GO哪都好 就是编译后太大 MIPS架构的elf 啥也没有就是2MB    用MIPS的嵌入式设备 有时候可操作的空间才2-3MB:噜阿噜.
不过总之还得感谢吴老板   不是火山GO  我还得靠AI生产C代码来制作elf
回复

使用道具 举报

123

主题

458

帖子

1067

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
1067
QQ
板凳
发表于 4 小时前 | 只看该作者
牛的牛的
严谨全职开发者,Q群不务正业的死杠精小学生勿扰,谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-5-23 04:48 , Processed in 0.097836 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表