>直接引用工具自带的库文件
通过指令:
.1查看能直接调用的库文件路径
#可以查到工具默认库文件路径,一般包括回显中的路径以及回显中路径的父路径。
info library
#D:/Script.NET/V2/Interps/Tcl/Lib/tcl8.
1.2、在上一步的路径下找找没有自己需要的库,通过指令:
package require xxx 引用,一般直接写tcl文件名即可,如果不对,查看pkgIndex.tcl里package ifneeded 后边的名称。 >引用别人的库文件或者添加自己的库文件 下边的工具指Script.NET 、将别人写好的库文件拷贝到编译器所在文件路径下。
路径:D:\Script.NET\V2\interps\Tcl\lib下,脚本中添加"package require xxx"后,就可调用了。 、创建自己的library库 注意:一般不要使用工具自带的控制台生成pkg_mkIndex,问题较多。
可以用ActiveTcl(下边的操作,尽量使用ActiveTcl安装后的tclsh.exe交互界面执行命令)
2.1、在工具安装路径(如D:\Script.NET\V2\lib),lib库路径下创建自己的lib(创建一个文件夹),如:mylib1.
2.2、将自己需要用到的所有tcl文件都放到这个文件夹下(tcl文件中一定要包含:package provide fun 1.0),provide提供的名称和版本。
2.3、执行工具自带的控制台(工具-->控制台),执行pkg_mkIndex -direct "D:\\Script.NET\\V2\\lib\\mylib1.0" *.tcl (tclsh.exe执行时可以在脚本中添加puts xxx,当第一次调用时,会显示puts后的内容,使用工具自带的控制台会添加puts会导致生成失败,但不会提示和报错)
说明:pkg_mkIndex [-direct--使用前直接加载当前路径下的文件,不管用到与否|-lazy -verbose--动态加载,使用时才加载,否则,不加载]
.4生成成功后,会有类似如下显示:
package ifneeded my_fun 1.0 [list source [file join $dir fun.tcl]]
package ifneeded my_namespace 1.0 [list source [file join $dir my_namespace.tcl]]
说明:动态和静态不一样,但是必有引用的文件,不可能全是注释内容
注意:文件中可以有多个方法,但是不能包含puts xxx,否则pkg_mkIndex生成的结果会有问题。
说明:目前测试,包含变量,方法,namespace的脚本都可以被package require xxx 后调用。 、添加自己的library库路径 工具有一个公共变量,执行代码时,可以直接使用
auto_path,使用:
3.1、显示默认自动可以引用的路径
#show the library of path which can be using directly.(Eg:package require xxx)
puts $auto_path
3.1、在默认自动可以引用的路径中,添加自己的路径,注意用applend和/。
#add path to auto_path.Intro:the path must be splited by "/",otherwise,it can not work.
lappend auto_path "D:/Tcl/lib"
puts $auto_path 其他说明:
、非TCL工具里的指令,只能在交互界面里执行(如:dir、ping等系统自带的指令),如果不希望交互里能执行非工具里的指令,可以定义变量set auto_noexec (可以设置成任何值),此时下发dir会报错,不识别。恢复:unset auto_noexec,之后输入dir就可以看到dir以及它对应的回显。

TCL:使用、添加库文件的更多相关文章

  1. 如何在Qt Creator中添加库文件和头文件目录

    在使用QtCreator开发图像处理程序的时候想加入Opencv库来处理图形,添加头文件,需要编辑工程文件夹下的.pro文件在文件中添加以下内容,即可包含头文件的文件夹: INCLUDEPATH += ...

  2. Qt添加库文件和头文件目录(QCreator)

    在使用QtCreator开发图像处理程序的时候想加入Opencv库来处理图形,添加头文件,需要编辑工程文件夹下的.pro文件在文件中添加以下内容,即可包含头文件的文件夹: INCLUDEPATH += ...

  3. win7下添加库文件出现“file is not regcognized”问题

    最近几天需要画电路图,所以安装了protel se99,安装后在添加库文件的时候出现“file is not regcognized”的问题 百度查了一下,说win7基本上都会出现这个问题. 实际上, ...

  4. Cocos2d-x 开发 v3.2 建立新项目并添加库文件

    一.添加其它类库     3.0以上的设计耦合性强,项目中模块常以库的形式存在,需常添加链接库.在3.0中经常用到CocoStudio 编辑器的资源数据,所以需要添加CocoStudio 库. 1.1 ...

  5. VC++ 6.0中添加库文件和头文件

    附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tools>Options>Directories>Include files. 对于特定项目的头文件包含,在& ...

  6. VC6.0中添加库文件和头文件

    附加头文件包含 VC6.0中: VC6.0默认include包含路径:Tools>Options>Directories>Include files. 对于特定项目的头文件包含,在“ ...

  7. VC 6.0中添加库文件和头文件 【转】

    本文转载自:http://blog.sina.com.cn/s/blog_9d3971af0102wxjq.html 加头文件包含 VC6.0中: VC6.0默认include包含路径:Tools&g ...

  8. visual studio 添加库文件

    我在visual studio中使用OpenGL时需要添加额外的库 一 首先下载库文件,里面将会有一些.h文件和.lib文件,打开visual studio安装目录下打开: D:\program\VS ...

  9. Xcode添加库文件framework (转)

    首先需要了解一下iOS中静态库和动态库.framework的概念 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我 ...

随机推荐

  1. jQuery HTML 操作

    jQuery 包含很多供改变和操作 HTML 的强大函数. 改变 HTML 内容 语法 $(selector).html(content) html() 函数改变所匹配的 HTML 元素的内容(inn ...

  2. Redis(三)节省内部空间优化

    总体原则:key的名称不易过长,剩下的所有 能用纯数字表示的尽量用 Redis的每一个键值都是用一个redisObject结构体表示的结构体中有:    键值的类型(string/list/hash/ ...

  3. xml/map转换器,递归设计思路

    xml/map转换器 图片:http://pan.baidu.com/s/1nuKJD13 应用场景,为什么要把xml转map?我直接用jdom,dom4j操作不行吗? 如果你了解模板引擎(像velo ...

  4. iOS手机功能汇总

    开发中经常会调用手机功能,今天来汇总一下,若有不足欢迎大家指出,下面分别介绍如下功能 : 电话 短信 邮件 通讯录 定位 跳转应用 跳转App Store 打开其他文件 电话 调用电话有下图两种不同样 ...

  5. 【转】MySQL连接超时断开的问题

      这遍文章转过来做个笔记,时不时看看. 转:http://blog.csdn.net/nethibernate/article/details/6658855 Exception如下: org.hi ...

  6. scp详解

    scp 命令 ================== scp 可以在 2个 linux 主机间复制文件: 命令基本格式:        scp [可选参数] file_source file_targe ...

  7. Socket accept failed

    启动tomcat显示如下错误: java.net.SocketException: select failed at java.net.PlainSocketImpl.socketAccept(Nat ...

  8. webpack配置sass模块的加载

    webpack管理的项目,我们希望用sass定义样式,为了正常编译,需要做如下配置.这里不讲webpack的入门,入门的文章,我推荐这篇<webpack入门>. 为了使用sass,我们需要 ...

  9. 序列化--dict与(file)文件读写

    在程序运行的过程中,所有的变量都是在内存中,比如,定义一个dict: d = dict(name='Bob', age=20, score=88) 可以随时修改变量,比如把name改成'Bill',但 ...

  10. mongkeyrunner实现循环随机输入值的方法

    from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice,MonkeyImagedevice= MonkeyRunner.waitF ...