SUSE Linux Enterprise Server 12 SP3中的链接器错误

时间:2018-09-25 09:29:40

标签: linux compiler-errors compilation linker-errors suse

我们的计算机一直在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.solibXt.solibX11.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的软链接(不可用)。

那我如何在这种环境下克服这个问题?

1 个答案:

答案 0 :(得分:0)

尝试zypper se -snt package 32bit | grep devel,然后查看缺少与X11相关的devel软件包。它们大多数在SDK中。但是,正如我刚才指出的那样,可能不再支持为32位开发X11。请检查有关此主题的SLE12发行说明。