最近、パッケージのrequireが既存のパッケージ名ではなく、auto_pathのpkgIndexファイルの1つがパッケージにrequireが含まれていて、既存のパッケージでない場合、tclPkgUnknownが無限再帰を入力することが判明しました。 pkgIndexからパッケージrequireを評価することができないのでしょうか、これは隠れたバグですか?package requires inside pkgIndex
0
A
答えて
1
pkgIndex.tcl
ファイルは、決してpackage require
で実行しないでください。 package ifneeded
を呼び出して、パッケージ管理システムにを伝えて、特定のパッケージの特定のバージョンをロードする方法をに伝える必要があります。これは、インデックス・スクリプトが、パッケージのディスカバリー時にはかなり異なる時にロードされるためであり、必ずしもそのパッケージのバージョンが本当に必要な時ではないからです。このルールに固執すれば、問題はありません。
ここには、そこにあるべきものがあります。
# Maybe some comments here?
package ifneeded Foo 1.2.3 [list source [file join $dir foo.1-2-3.tcl]]
$dir
?これは、便宜上、インデックスファイルを含むディレクトリの名前です。 (これは実際にはローカル変数でもあり、インデックスファイルはの内部でのプロシージャコンテキストと評価されます)
関連する問題
- 1. TreeViewItem.Header inside inside
- 2. foreach inside foreach inside foreach
- 3. Android DownloadManager 'Download Requires Network'エラー
- 4. JS inside inside JS?または
- 5. jQuery this inside this
- 6. Explicit Package Error in Perl
- 7. /data/data/[package]/insideに格納された内部ファイルをAndroidで使用する方法は?
- 8. Spring Resource Inside JAR/WAR
- 9. Constant inside class
- 10. Preg_replace with brackets [] inside
- 11. LocationListener InSide AsyncTask
- 12. Jboss4 inside OSGI
- 13. CollectionView inside ViewController
- 14. attach()inside function
- 15. Repeater inside Data Pager
- 16. http post inside .then()
- 17. C:timer inside/loop + scanf?
- 18. mongodb:$ substr inside $ group
- 19. IE8:float inside li
- 20. Oracle IF inside CASE
- 21. JButton inside JMenuItem
- 22. Javascript confirmbox + form inside
- 23. ExpandableListView inside ExpandableListView
- 24. RadioButton.Checked inside Tree
- 25. setTimeout inside whileループ
- 26. Android AsyncTask inside AsyncTask
- 27. inside foreach in PHP
- 28. EditTexts inside ExpandableListView
- 29. onmouseover inside two div
- 30. WIX Paraffin insideプログラムファイルディレクトリ
pkgIndexファイルに 'package require'があるのはなぜですか?これはpkgIndexファイルの誤用であり、バグではありません。 –
システム内で、すべてのtclファイルをフォームパッケージに暗号化しておく必要がありますEncr dencryptAndEval {暗号化されたスクリプト} – ArmanHunanyan
tclパッケージに関するドキュメントは、https://www.tcl.tk/man/tcl8.5よりも有益です/tutorial/Tcl31.html。特に、C++コードのtclパッケージを作成する方法 – ArmanHunanyan