Ошибка компоновщика в SUSE Linux Enterprise Server 12 SP3 - PullRequest
0 голосов
/ 25 сентября 2018

Наш компьютер находился в SUSE Linux Enterprise Server 11 SP4 до тех пор, пока мы недавно не перешли на SUSE Linux Enterprise Server 12 SP3.

Наши инструменты C ++ компилировались без проблем в SuSe 11. Но когда мы компилировали инструментыв SuSe 12 мы имеем ошибку компоновщика ниже:

/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../libXm.so when searching for -lXm                                                                                                                   
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lXm                                                      
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../libXt.so when searching for -lXt                                                                                                                   
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lXt                                                      
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../libX11.so when searching for -lX11                                                                                                                 
/usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lX11

После некоторого исследования я узнал, что компиляция с 64-битной версией успешна.Но я хочу двоичные файлы в 32-разрядной версии.

Я знаю, что компоновщик ищет файл libXm.so, libXt.so, libX11.so, но не может найти нужный файл.

На следующей странице SuSe говорится, что существуетнет поддержки x86 от SuSe12 и далее: https://www.suse.com/products/server/download

Когда я проверял эти файлы в SuSe 11 SP4, он был доступен как:

/usr/lib/libXm.so -> libXm.so.4.0.1
/usr/lib/libXt.so -> libXt.so.6.0.0
/usr/lib/libX11.so -> libX11.so.6.2.0

В SuSe 12 эти .soнедоступно в /usr/lib.Но libXm.so.4.* или libXt.so.6.* или libX11.so.6.* присутствуют в /usr/lib.Отсутствует только программная ссылка из этих файлов на .so (недоступно).

Так как мне решить эту проблему в этой среде?

1 Ответ

0 голосов
/ 18 ноября 2018

Попробуйте zypper se -snt package 32bit | grep devel и посмотрите, чего не хватает в пакетах, связанных с X11.Большинство из них находятся в SDK.Но, как я только что заметил, разработка X11 для 32-битной системы может больше не поддерживаться.Пожалуйста, проверьте ReleaseNotes для SLE12 по этой теме.

...