我安装了Win 7机器和TCL
downloads.activestate.com/ActiveTCL/releases/8.6.4.1/ActiveTcl8.6.4.1.299124-win32-x86_64-threaded.exe
我成功使用TCL包 fileutil ,如下:
proc foo{} {
# some code
package require fileutil
# able to use ::fileutil::updateInPlace in code
}
foo
这是通过
中的脚本完成的C:/SVN/code/changeFile.tcl
现在,我使用相同的代码作为更大脚本的一部分
proc foo{} {
# some code
package require fileutil
# some code using the package
}
# more code
cd "C:/SVN/code"
foo
#more code
cd "C:/Program Files (x86)/Target Compiler Technologies/adsp2-12R2/designs/adsp2/ISS"
这是名为 audio_sim.tcl 的脚本的一部分,并由shell上的以下命令调用
cd“C:/ Program Files(x86)/ Target Compiler Technologies / adsp2-12R2 / designs / adsp2 / ISS“adsp2_ia.exe -T -t “C:/SVN/code/audio_sim.tcl”
现在出现错误:
无法找到包fileutil
为什么它会像我在第一种情况下那样抱怨?
答案 0 :(得分:2)
正如slebetman所写,adsp2_ia.exe
可能无法找到ActiveTcl库文件,但您可以自己导入该包。在我的8.6.1安装中,文件位于C:\Tcl\lib\teapot\package\tcl\teapot\tcl8\8.2\fileutil-1.14.8.tm
。您的位置或版本号可能不同,但请注意您正在寻找.tm
文件。它不会出现在名为fileutil
的任何目录中,而是用于相关的包。
(另一个slebetman指针:)通过以路径为参数调用::tcl::tm::path add
,可以使模块可见。
如果没有,请使用source
导入代码。在任何程序之外的全局范围内进行调用。
然后你应该可以致电package require fileutil
。