【发布时间】:2013-08-07 10:46:30
【问题描述】:
在 RHEL 机器上将 tcl 版本从 8.4 更改为 8.5.12 时遇到问题。我们的产品使用 TclDevKit 组件,如 Tcldom、Tclxml 等。我们也使用 Incr Tcl (Itcl)。我正在尝试在 Itcl 中创建 pkgIndex.tcl 文件,以便在需要该软件包时找到 Itcl,如下所示:
package ifneeded Itcl 3.4 [list load [file join $dir "libitcl-O.a"] Itcl ]
但是当我使用时
package require Itcl
获取报告:无法加载文件“/somepath/itcl/lib/libitcl-O.a”:/somepath/lib/libitcl-O.a:无效的 ELF 标头
似乎我无法加载带有 .a 扩展名的文件,但以前版本的 tcl (8.4) 也是如此,它工作正常。我搜索了很多,阅读了很多文档,但这并没有帮助更进一步。
请帮忙。
提前致谢
【问题讨论】:
-
检查
readelf -h <libname>并将其与您机器的架构进行比较 -
我按照您的建议进行了检查。我看不出有什么奇怪的地方
-
它是否与您的新(8.5.12)
tclsh的 elf 标头匹配? -
ELF Header 的 Magic、Class、Data、Version、OS/ABI、ABI 版本、Machine、Version、Flags、Size of header、Size of section header 匹配。有几个不匹配的组件,但我认为它们应该是特定于库的。