我正在尝试使用陣容在 Mac OS X El Capitan (10.11.6) 中。但每次我尝试打开它时都会显示以下错误
Warning: Widget must be a VendorShell.
Warning: Fatal Error:
_XmGetDefaultDisplay cannot be used prior to VendorS.Initialize, returns NULL
Oops! Got SIGSYS
Please use "Help/Comments" to report the bug.
Abort trap: 6
答案1
我希望这仍然有意义。我在 Homebrew GitHub 上找到了解决方案。
解决方案是取自这个帖子:
作为一种解决方法,要再次运行基于主题的程序:
将 XQuartz 降级至 2.7.8
brew update && brew upgrade
从源代码重新安装 openmotif 和受影响的程序
错误来源取自这个帖子:
因此这可能是由于测试机器人服务器上的 XQuartz 升级所致。我怀疑第一次针对 2.7.9 构建 openmotif 瓶时,它链接到两级命名空间 libXt.7.dylib,而 @ltbuchman 在后续更新中发现了它。
啊哈!2.7.10_rc4 发行说明甚至有关于 libXt 和 Motif 的内容。他们说:
libXt
libXt.6.dylib is now a two-level-namespace dylib
libXt.7.dylib is now a stub dylib that re-exports libXt.6.dylib (for binary compatibility with anything built against XQuartz 2.7.9)
A flat_namespace version of libXt is available in /opt/X11/lib/flat_namespace to help ease the transition (#96292)
Set DYLD_LIBRARY_PATH=/opt/X11/lib/flat_namespace when executing older non-compliant software (eg: Motif-based applications)
Motif users are encouraged to file bugs against Motif to encourage them to fix that library.
以下是 XQuartz 2.7.9 发行说明:
libXt
No longer linked with -flat_namespace
Binary compatibility maintained for existing clients of libXt.6.dylib
我认为这意味着 libXt.6.dylib 是 -flat_namespace,而新的 libXt.7.dylib 不是。
这是 XQuartz 2.7.8(先前版本)的库:
$ otool -hv libXt.6.dylib
libXt.6.dylib:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 19 2024 DYLDLINK NO_REEXPORTED_DYLIBS APP_EXTENSION_SAFE
Note the lack of TWOLEVEL in the flags. There is no libXt.7.dylib in this version.
这是 XQuartz 2.7.9 中的库:
$ otool -hv libXt.6.dylib libXt.7.dylib
libXt.6.dylib:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 19 2024 DYLDLINK NO_REEXPORTED_DYLIBS APP_EXTENSION_SAFE
libXt.7.dylib:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC_64 X86_64 ALL 0x00 DYLIB 19 2024 NOUNDEFS DYLDLINK TWOLEVEL NO_REEXPORTED_DYLIBS APP_EXTENSION_SAFE