尝试使用 -lcurses 构建 32 位二进制文​​件时,安装 multilib 仍然无法解析 -ltinfo

尝试使用 -lcurses 构建 32 位二进制文​​件时,安装 multilib 仍然无法解析 -ltinfo

尝试在 kubuntu 18.04 上构建 32 位应用程序。我已经可以使用 -m32 在 32 位模式下编译我的代码,并且能够构建一个简单的应用程序(一旦我安装了多库)。但现在我正尝试构建一个使用 -lcurses 的应用程序,而 ld 抱怨 -ltinfo 的 X86-64 版本不兼容(我假设它是“terminfo”库 - 并通过调用 curses 库来调用)。具体来说:

/usr/bin/ld: skipping incompatible //usr/lib/x86_64-linux-gnu/libtinfo.so when searching for -ltinfo

我的最终构建行上有 cc -m32,并且它没有抱怨任何其他库。

不管怎样,如果我使用系统默认设置并允许我的应用程序以 64 位二进制文​​件的形式构建,那么一切都会构建 - 所以我假设我请求了所有正确的库等等。只是应用程序没有工作正确作为 64 位应用程序,在我进一步弄清楚为什么是,我想尝试将其构建为一个 32 位应用程序 - 20 年前,当我为该应用程序进行第一个“概念验证” Linux 构建时,这种方法就奏效了 ;-)

还有其他方法可以调用“ld”命令来加载正确的 32 位库吗?还是我必须再安装一个 32 位库包才能让 -lcurses 在 32 位模式下工作?

相关内容