2015-03-02 38 views
0

當你創建新的解釋器時,它已經包含了Tcl包。有人知道這個軟件包何時加載?是否有任何啓動腳本調用包需要Tcl {....}?當加載Tcl庫包時?

回答

1

Tcl包在調用Tcl_CreateInterp()期間由內部設置代碼運行,並且可以被認爲是Tcl手冊中列出的命令的定義(除非另有明確說明)。它在包裝系統中出現的主要用途是它可以讓你記錄你在一個巧妙的方法需要什麼版本的Tcl:

package require Tcl 8.6 

有沒有ifneeded腳本它;它已經按照定義存在了(並且必須是,因爲它定義了package命令)。在C級,它更有用。 Tcl包實際上是發佈了Tcl的存根表,它允許Tcl具有非常穩定的ABI;存根機制隱藏了小版本之間變化的血淋淋的細節,並允許擴展包不鏈接到特定版本的Tcl,即使Tcl解釋器使用靜態構建...

+0

感謝您的回答。順便說一下,我有以下問題。我剛剛將我的項目從tcl8.4移植到tcl8.6。但現在我得到錯誤「... 8.6/lib/tcl/init.tcl:包」Tcl「的版本衝突:有8.4,需要8.6.2」。當然這是因爲我錯過了一些東西。你能給我一個提示如何找到這個問題的原因嗎? – ArmanHunanyan 2015-03-02 13:14:33