Nossa máquina estava no SUSE Linux Enterprise Server 11 SP4 até quando nos mudamos recentemente para o SUSE Linux Enterprise Server 12 SP3.
Nossas ferramentas C ++ foram compiladas sem nenhum problema no SuSe 11. Mas quando compilamos as ferramentas no SuSe 12, temos abaixo o erro do vinculador:
/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
Depois de alguma exploração, fiquei sabendo que a compilação é bem-sucedida com 64 bits. Mas eu quero os binários em 32 bits.
Sei que o vinculador está pesquisando o arquivo libXm.so
, libXt.so
, libX11.so
, mas não consegue encontrar o arquivo correto.
A página seguinte da SuSe informa que não há suporte do x86 a partir do SuSe12: link
Quando verifiquei esses arquivos no SuSe 11 SP4, eles estavam disponíveis como:
/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
No SuSe 12, esses .so
não estão disponíveis em /usr/lib
. Mas libXm.so.4.*
ou libXt.so.6.*
ou libX11.so.6.*
estão presentes em /usr/lib
. É apenas o softlink desses arquivos para .so
estão faltando (não disponível).
Então, como eu supero esse problema neste ambiente?
Tags linux packages sles opensuse compilation