.xpm файлы не загружаются - PullRequest
0 голосов
/ 26 марта 2020

Я перенес 32-битное приложение Motif (из SLES 10 SP1) в 64-битную SLES 12 SP3. Из-за проприетарных библиотек (XRT) мне пришлось компилироваться на 32-битной платформе (SLES 11 SP3) и статически связывать Motif (XRT уже был статически связан). Это работает нормально.

Затем я попытался запустить точно такие же двоичные файлы на SLES 12 SP4, и это также работает за исключением того, что файлы .xbm не отображаются. Ниже приведены примеры изображений с (SLES 12 SP3) и без (SLES 12 SP4) файла .xbm:

.xbm file rendered .xbm file NOT rendered

Я получаю ошибку:

Warning: Cannot convert string "range30Km32.xbm" to type Pixmap
Warning: Type conversion failed

Соответствующий код выглядит следующим образом:

#define RES_CONVERT( res_name, res_value) \
    XtVaTypedArg, (res_name), XmRString, (res_value), strlen(res_value) + 1

XtVaSetValues(MwRscRange30LBL,
        RES_CONVERT( XmNlabelPixmap, "range30Km32.xbm" ),
        NULL );

То, что я сделал до сих пор без успеха:

  1. Сравнил разницу между SLES 12 SP3 и SP4 соответствующих библиотек.
  2. Статически связывайте все возможные библиотеки (некоторые библиотеки не имеют вариантов * stati c).
  3. Проверьте Исходный код для X11 / Xt / Xm. (Эта часть взаимодействия между Xm и Xt особенно болезненна, чтобы обернуть мою голову.)

Есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...