通过 Go 实现的 Tcl/Tk 应用程序二进制文件

主要观点:发现了 modernc.org/tk9.0 这一 Go 包,是 Tcl/Tk 9.0 从 C 到纯 Go 的自动翻译,可让 Go 开发者使用 Tk 且无需 C 库依赖,结合 Go 标准库中的 embed 包可将 Tcl 代码转为独立可执行文件并跨平台编译;给出了将单个 Tcl 源文件转为二进制的示例,包括创建 Go 包装器、初始化 Go 模块、下载依赖、构建运行程序等步骤,还提到了 Linux 二进制默认依赖 libc 可通过覆盖链接器选项构建静态二进制,以及在 Windows 中可通过传递特定标志阻止控制台窗口出现等。
关键信息

  • modernc.org/tk9.0 是 Go 翻译的 Tcl/Tk 9.0 包。
  • 使用 //go:embed 存储 Tcl 代码到变量。
  • 可通过 go build 构建和运行程序,还可跨平台编译。
  • 提到 Linux 二进制依赖 libc 及静态编译相关内容。
  • Windows 可通过特定标志阻止控制台窗口。
    重要细节
  • 示例中使用未修改的 Tiny Excel-like app in plain Tcl/Tk 代码作为 main.tcl,创建 main.go 包装器并导入相关包。
  • 构建过程中创建 go.mod 和 go.sum 文件。
  • 介绍了不同操作系统下的编译和运行方式及生成的文件大小。
  • 讨论了添加额外 Tcl/Tk 包的方法,如嵌入 Tcl 文件并依次 Eval 等。
阅读 9
0 条评论