我们的计算机一直在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的以下页面告诉我们,从SuSe12开始不支持x86: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
的软链接(不可用)。
那我如何在这种环境下克服这个问题?
答案 0 :(得分:0)
尝试zypper se -snt package 32bit | grep devel
,然后查看缺少与X11相关的devel软件包。它们大多数在SDK中。但是,正如我刚才指出的那样,可能不再支持为32位开发X11。请检查有关此主题的SLE12发行说明。