2015-03-02 5 views

ответ

1

Пакет Tcl загружается во время вызова кода внутренней настройки во время вызова Tcl_CreateInterp() и может считаться определением команд, перечисленных в руководстве Tcl (за исключением тех случаев, когда это явно указано в противном случае). Основное применение для его появления в системе пакета это позволяет документировать, какую версию Tcl вам требуется аккуратным образом:

package require Tcl 8.6 

Там нет ifneeded сценария для него; он уже присутствует по определению (и должен быть, поскольку команда package определена им). На уровне C это более полезно. Пакет Tcl - это то, что фактически публикует таблицу заглушек Tcl, что позволяет Tcl иметь чрезвычайно стабильный ABI; механизм заглушки скрывает детали gory, которые изменяются между второстепенными версиями, и позволяет пакетам расширения не привязываться к конкретным версиям Tcl, даже если интерпретатор Tcl использует статическую сборку ...

+0

Спасибо за ответ. Кстати, теперь у меня есть следующая проблема. Я просто портировал свой проект с tcl8.4 на tcl8.6. Но теперь я получаю ошибку «... 8.6/lib/tcl/init.tcl: конфликт версий для пакета« Tcl »: имеет 8.4, нужен 8.6.2". Конечно, это потому, что я что-то пропустил. Не могли бы вы дать мне подсказку, как найти причину этой проблемы? – ArmanHunanyan

Смежные вопросы