2013-07-21 84 views
-1

我使用tcl 8.6其中包括snit(活動狀態Tcl)。 我的snit類型被保存在不同的文件中。在生成auto_mkindex索引時,在tclIndex中缺少相關類型的相關內容。缺少tclIndex的條目類型

這意味着: 當我嘗試創建發怒類型 的對象(例如 'MYTYPE create objectsName ...) 解釋寫入消息 invalid command name ....

如果我完成tclIndex的手動

set auto_index(RPCSkeleton) [list source [file join $dir rpc2.tcl]] 

一切運行良好!

我有什麼問題嗎?這是一個在Snit軟件包中的錯誤(或者在auto_mkindex的附加模塊中)?

+0

我從來沒有使用'auto_mkindex',所以沒有第一手的知識。然而,[wiki](http://wiki.tcl.tk/1694)首先聲明「注意 - 如果你想用auto_mkindex和itcl或任何其他擴展聲明特殊的proc-like結構,一定要做一個打包需要首先擴展。「是你做的嗎? – nurdglaw

回答

0

我不會建議使用auto_mkindex;它在設置自動加載的代碼時所做的所有事情在任何實際應用程序中首先都是不明智的。它要好得多:

  1. 將代碼組裝成一個包,你可以package require。包定義文件將需要一個package provide調用,然後您將(至少第一次)使用pkg_mkIndex來創建包索引文件。包索引文件非常簡單,您可以手動維護它們;他們沒有列出包中的每個命令,並且都是可重定位的,所以維護只是在必要時添加額外的文件,偶爾會更新版本號。 (不要使用延遲封裝加載!)

    另外,...

  2. 直接source在正確的時間的文件。這對於你的應用程序來源比你想放入單個文件的時間長的情況非常有用。 (把事情分開可以是一個非常好的本能。)