• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

linux下ruby使用tcl/tk编程环境设置

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

正常情况下最新的ruby都是不带tcl/tk选项编译的,所以我们在运行tcl/tk代码时都会发生找不到tk库的错误。解决办法很简单只要以tcl/tk选项编译ruby即可。

这里以ubuntu 15.04为例,前提是先安装rvm;如果不用rvm也可以,不过要自己下载源代码回来编译,不如一步到位用rvm省事。

首先到ActiveTcl官网下载tcl:
http://www.activestate.com/activetcl/downloads

注意不要选择最新的8.6.x,因为可能兼容性有问题,需要下载8.5.x或8.4.x:

解压后直接运行install.sh,如果要安装到特定目录可能要用sudo安装。一路next之后,ActiveTcl和Tk就装好了。

接下来可以使用rvm安装最新的ruby,别忘了加上tcl/tk选项支持:

rvm reinstall ruby-2.2.2 --with-tcl --with-tk

如果安装失败,很有可能是tcl/tk环境没有设置好;可以进入对应ruby的源代码目录:

[email protected]:~/.rvm/src/ruby-2.2.2/ext/tk$ pwd
/home/wisy/.rvm/src/ruby-2.2.2/ext/tk
ruby extconf.rb

最后一句命令的输出可以看到到底是由于神马原因rvm reinstall ruby失败。如果你的源代码文件里没有ext文件夹表示源代码不完整,需要下载完整的ruby源代码。
(PS:rvm不同版本ruby的可执行文件放在~/.rvm/rubies目录下;不同版本ruby的源代码放在~/.rvm/src目录下)

接下来我们可以写一个测试代码看看:

#!/usr/bin/ruby

require 'tk'

msg="你好!中国"
root=TkRoot.new{title msg}
label_msg=TkLabel.new(root){
    text  msg
    pack :padx=>2,:pady=>2,:side=>'top'
    font "arial 20 bold"
}

Tk.mainloop

使用 ./1.rb运行,如果没问题则应该有窗口出现:

最后我们还要做点rvm的“收尾”工作:

rvm use ruby-2.2.2  #设置当前使用的ruby版本
rvm use 2.2.2 --default #设置ruby的默认版本
rvm docs generate #生成rdoc文档

(PS: Ruby/Tk 扩展

TkButton、TkCanvas 等都是 Tk 的核心小部件。除此之外,还有很多第三方的小部件,我们称它们为“Tk 扩展”。这些第三方的 Tk 小部件往往比核心小部件更加强大。既然有“Tk 扩展”,就必然有“Ruby/Tk 扩展”与之对应。您可以在 Ruby 的安装目录中找到它们:目录“RUBY_INSTALL_DIR\lib\ruby\RUBY_VERSION_NUMBER\tk”中是核心 Ruby/Tk 代码,而目录“RUBY_INSTALL_DIR\lib\ruby\RUBY_VERSION_NUMBER\tkextlib”中是 Ruby/Tk 扩展代码。 )


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Ruby入门(1)——数据类型发布时间:2022-07-13
下一篇:
Ruby学习笔记-Block, Proc and Lambda发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap