为了账号安全,请及时绑定邮箱和手机立即绑定

Mac下使用nsf的“gothic”(tcl/tk go binding)库pb

Mac下使用nsf的“gothic”(tcl/tk go binding)库pb

Go
精慕HU 2021-08-23 15:35:26
我一直在 Linux 下使用 nsf 的“哥特式”(tcl/tk go 绑定)库有一段时间了:它运行良好,并且非常方便地将基于 tcl/tck 的图形界面添加到 Go 应用程序(或多或少是什么) Tkinter 是 Python)。https://github.com/nsf/gothic但是,我在 Mac 下安装它时遇到了一些问题。为了解决这个问题,我对我的 Mac 开发环境进行了以下修改:安装了最新版本的 Xcode。完全删除了“端口”(Mac 版 Linux 工具的端口)并从头安装到最新版本。升级到最新的稳定版 Go。现在至少我可以在 Mac 下安装“gothic”并且编译时没有任何抱怨。我必须对文件进行以下更改interpreter.go,以便标头指令指向正确的库位置:#cgo !tcl85 LDFLAGS: -L/opt/local/lib#cgo !tcl85 LDFLAGS: -ltcl8.6 -ltk8.6#cgo !tcl85 CFLAGS:  -I/opt/local/include/tcl8.6#cgo darwin tcl85 CFLAGS: -I/opt/local/include#cgo darwin tcl85 CFLAGS: -I/opt/local/include/tcl8.6而不是原来的:#cgo !tcl85 LDFLAGS: -ltcl8.6 -ltk8.6#cgo !tcl85 CFLAGS: -I/usr/include/tcl8.6#cgo tcl85 LDFLAGS: -ltcl8.5 -ltk8.5#cgo tcl85 CFLAGS: -I/usr/include/tcl8.5#cgo darwin tcl85 CFLAGS: -I/opt/X11/include所以这是指向正确的库。当前的情况是示例确实可以编译,没有任何警告或错误消息。问题是生成的可执行文件只能随机正确运行,不时形成,但大多数时候只是“挂起”(在界面应该是的地方显示一个空的白色矩形)程序块的执行。在 nsf 的代码中,最后一条明显执行的语句(当可执行文件卡住时)是对Tk_Mainloop().这就是我试图弄清楚出了什么问题。所以很明显,这不是 Go (golang) 到 Tcl 的绑定问题。看起来 Tcl 和 Tk 之间的“连接”有时有效,有时在该上下文中无效(而在 Linux 下它可以完美运行)。有没有人在 mac 上使用“gothic”更成功(或者在 mac 下使用 tcl/tk 绑定的经验可能更多)?如果是,将非常感谢有关如何进行的一些帮助。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 426 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信