Я пытаюсь использовать xmgrace в 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 ответ1

0

Я надеюсь, что это все еще актуально. Я нахожу решение на доморощенном github.

Решение взято из этой темы:

В качестве обходного пути, чтобы снова запустить программы на основе мотивов:

Понизить XQuartz до 2.7.8

brew update && brew upgrade

Переустановите openmotif и затронутые программы из исходного кода.

Источник ошибки взят из этой темы:

Так что это, вероятно, было вызвано обновлением XQuartz на серверах тест-ботов. Я подозреваю, что первый раз, когда бутылка openmotif была построена на 2.7.9, она связывалась с пространством имен двухуровневого 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .