在64位Debian上交叉编译32位时找不到Libpcap

时间:2019-02-13 07:31:49

标签: c++ cross-compiling libpcap

我正在尝试在64位Debian Stretch上编译32位应用程序。我已经以这种方式成功编译了其他几个应用程序,但是一个使用 pcap 库的应用程序给我带来了问题。对于我的平台,该库似乎没有32位版本。

问题描述

当我尝试链接我的应用程序时,像这样:

g++ (...objectfiles-and-options...) -m32 -o myapp -lpthread -lpcap

我得到了错误

/usr/bin/ld: cannot find -lpcap

我检查了一下,/ usr / lib32中确实没有libpcap.so(或其变体)。但是,我正在使用的所有其他库都在那里(例如libpthread)。我试图在其中创建到64位pcap库的软链接,以防万一它们应该是多平台兼容的,但这只会导致“搜索-lpcap时跳过不兼容的/usr/lib32/libpcap.so “。

我已经安装了libpcap-dev,libc6-dev-i386,gcc-multilib和g ++-multilib(显然,因为交叉编译适用于所有不使用libpcap的应用程序)。我怀疑应该可以安装一个libpcap-dev-i386,但似乎没有。

也许我应该提到应用程序以64位成功编译和链接。

有人知道我在这里想念的吗?

1 个答案:

答案 0 :(得分:0)

您可以自己编译libpcap。这可能是比依赖软件包更好的解决方案。 使用configure for 32bit体系结构,然后使编译器LDFLAGS指向您的lib或将其安装在/ usr / lib32 /