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

问题描述 投票:0回答:1

我试图在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-libraries的软链接,以防它们应该是多平台兼容的,但这只会导致“在搜索-lpcap时跳过不兼容的/usr/lib32/libpcap.so” ”。

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

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

有谁知道我在这里缺少什么?

c++ cross-compiling libpcap
1个回答
0
投票

你可以自己编译libpcap。它可能是比依赖包更好的解决方案。使用configure for 32bit架构,而不是让你的编译器LDFLAGS指向你的lib或安装在/ usr / lib32 /

© www.soinside.com 2019 - 2024. All rights reserved.