Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Pb使用nsf';s";哥特式;Mac下的(tcl/tk go绑定)库_Macos_Binding_Go_Tcl - Fatal编程技术网

Macos Pb使用nsf';s";哥特式;Mac下的(tcl/tk go绑定)库

Macos Pb使用nsf';s";哥特式;Mac下的(tcl/tk go绑定)库,macos,binding,go,tcl,Macos,Binding,Go,Tcl,我在Linux下使用nsf的“哥特式”(tcl/tk go binding)库已经有一段时间了:它工作得非常好,并且非常方便地将基于tcl/tck的图形界面添加到go应用程序中(与Tkinter对Python的作用差不多) 但是,我在Mac下安装时遇到了一些问题 为了解决这个问题,我对我的Mac开发环境进行了以下修改: 已安装最新版本的Xcode 完全删除了“端口”(Linux tools for Mac的端口),并从头安装到最新版本 升级至Go的最新稳定版本 现在,至少我可以在Mac下安

我在Linux下使用nsf的“哥特式”(tcl/tk go binding)库已经有一段时间了:它工作得非常好,并且非常方便地将基于tcl/tck的图形界面添加到go应用程序中(与Tkinter对Python的作用差不多)

但是,我在Mac下安装时遇到了一些问题

为了解决这个问题,我对我的Mac开发环境进行了以下修改:

  • 已安装最新版本的Xcode

  • 完全删除了“端口”(Linux tools for Mac的端口),并从头安装到最新版本

  • 升级至Go的最新稳定版本

现在,至少我可以在Mac下安装“哥特式”,它可以毫无怨言地编译

我必须对
解释器.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\u Mainloop()

这就是我试图找出问题所在的范围

所以很明显,这不是一个Go(golang)到Tcl绑定的问题

看起来好像Tcl和Tk之间的“连接”有时能工作,有时不能在这种上下文中工作(而它在Linux下工作得很好)

有没有人在mac上使用“哥特式”更成功(或者在mac下使用tcl/tk绑定的经验更丰富)

如果是,我们将非常感谢您对如何进行的帮助


谢谢,

同时安装:

  • 约塞米蒂(Mac OS X 10.10.1)
  • 最新版本的“端口”()
  • XQuartz 2.7.7,现在可以工作了
Nsf.s哥特式(tcl/tk到Golang绑定)库现在可以在Mac上正常工作了

因此,假设问题与X11.app的(后期)实现有关是正确的


Serge

这可能是tk/X之间的交互,或者Go在mac上做了一些奇怪的事情,你能试试Go 1.2和tip吗?OS X上的大多数新tk代码可能是针对用户界面的Cocoa类型,所以除非你真的需要,否则你可能不应该链接X11版本。Macports有一些变体交换机来实现这一点。您是否希望构建X11或Aqua(OSX本机)Tk?Tk在OSX上默认为Aqua,因为这往往是用户最期望的,但是如果您要从Linux移植代码,可能需要使用X11版本。否则,任何做自定义绘图的C代码都需要从头开始完全重写;虽然Tk隐藏得很好,但X11和Aqua/Cocoa API完全不同。(这就是为什么开发Tk本身非常困难的原因之一。)到目前为止,我已经尝试使用“端口”提供的库重新编译Linux代码(没有任何修改)。它通常有效,但在这种情况下不完全有效。Pb=问题---