直到我们最近迁移到SUSE Linux Enterprise Server 12 SP3之前,我们的计算机才安装在SUSE Linux Enterprise Server 11 SP4中。
我们的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
的软链接(soft link)(不可用)。那么如何在这种环境下克服这个问题呢?
最佳答案
尝试zypper se -snt package 32bit | grep devel
,看看缺少了与X11相关的devel软件包。它们大多数都在SDK中。但是,正如我刚才指出的那样,可能不再支持为32位开发X11。请检查有关此主题的SLE12发行说明。