“pkg_mkIndex”是一个Tcl命令,它用来建立包索引,这样当使用“package require”时,相应的包才能被找到。使用“pkg_mkIndex”命令会建立“pkgIndex.tcl”文件,将“pkgIndex.tcl”和相关的库文件放到“$tcl_pkgPath”所指名的目录的某个子目录下,这样包才能被自动加载。
以下是一个简单的测试:
建立PackageTest.tcl文件,放入/usr/local/ActiveTcl/lib/目录下,PackageTest.tcl内容如下:
#!/usr/local/ActiveTcl/bin/tclsh
set auto_path [lappend auto_path [file dirname [info script]]]
package provide PackageTest 1.0
proc PackageTest_fun {} {
global auto_path
puts "============================"
puts "$auto_path"
puts "============================"
}
使用下面的命令生成pkgIndex.tcl文件:
[grant@sitats grant]$tclsh
% pkg_mkIndex /usr/local/ActiveTcl/lib/PackageTest *
使用示例:
[root@sitats PackageTest]$tclsh
% package require PackageTest
1.0
% PackageTest_fun
============================
/usr/local/ActiveTcl/lib/tcl8.4 /usr/local/ActiveTcl/lib /usr/local/ActiveTcl/lib/tcllib1.6 /usr/local/ActiveTcl/lib/tklib0.2 /usr/local/ActiveTcl/lib/grantTest
============================