Наша машина была в 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
отсутствуют (недоступны).
Итак, как мне решить эту проблему в этой среде?