如何使用Go和Labs / ui交叉编译GUI应用程序


概述

点总结

  • 使用Go制作GUI
  • GUI库使用andlabs / ui
  • 在Linux上针对Linux / Windows / Mac进行交叉编译

存储库:https://github.com/contribu/equalizer-apo-translator

我想做什么

Windows GUI商业使用动态无链接使用源代码管理构建环境/方法

我想认识

技术选择

C#取决于.Net。它现在可能在大多数环境中都可以使用,但是不久前它没有用,因为它没有.Net,所以我没有使用它。

Delphi被拒绝,因为它没有商用版本。
我什至不知道如何通过源代码控制构建环境/方法。

可能已经创建了拉撒路,但我没有尝试过。

Go听说没有动态链接就可以完成。
在检查了GUI库之后,我发现andlabs / ui似乎依赖于GTK,但是似乎可以在运行时不依赖Windows的情况下完成Windows的构建。
我还发现,andlabs / ui具有用于交叉编译的docker。
我成功了

如何使用Go和Labs / UI

交叉编译GUI应用程序

基本的

有关如何使用

andlabs / ui的信息,请参见官方页面。
https://github.com/andlabs/ui
您可以通过在examples目录中查看如何使用它。

交叉编译

用于交叉编译的Docker image

据记载,下面有一个docker用于交叉编译andlabs / ui。
https://github.com/andlabs/ui/wiki/Building-and-Cross-Compilation
https://github.com/magJ/go-ui-crossbuild/

如何与circleci交叉编译

看到这个。
https://github.com/contribu/equalizer-apo-translator/blob/master/.circleci/config.yml

注意

  • 用于交叉编译的docker镜像是两年前(大概在2017年左右)构建的。
  • 所以图书馆很旧
  • 重建docker映像很麻烦,所以我照原样使用了它,但是一些库需要更新(请参阅.circleci / config.yml)
  • 我不确定如何为交叉编译命令指定参数,因此我查看了脚本的源代码并使其工作。
  • 忽略.circleci / config.yml中描述的go-bindata和lrelease,因为它们特定于此应用程序。
  • Mac版本无效。我猜这是因为交叉编译的docker映像太旧了。
  • 我没有尝试查看linux构建是否有效。