【问题标题】:Linker error in SUSE Linux Enterprise Server 12 SP3SUSE Linux Enterprise Server 12 SP3 中的链接器错误
【发布时间】:2019-02-28 21:09:44
【问题描述】:

在我们最近迁移到 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.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 的软链接(不可用)。

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

【问题讨论】:

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


【解决方案1】:

试试zypper se -snt package 32bit | grep devel,看看缺少哪些与 X11 相关的开发包。其中大部分都在 SDK 中。但正如我刚才提到的,可能不再支持为 32 位开发 X11。请查看有关此主题的 SLE12 发行说明。

【讨论】:

    猜你喜欢
    • 2021-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 2020-10-17
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多