c++ - 在 64 位 Debian 上交叉编译 32 位时找不到 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 位。
有谁知道我在这里想念什么?
解决方案
你可以自己编译 libpcap。这可能是比依赖包更好的解决方案。对 32 位架构使用配置,然后将编译器 LDFLAGS 指向您的库或将其安装在 /usr/lib32/
推荐阅读
- excel - Userform having exact member name and date of birth as input
- jquery - Jquery Return NaN
- api - 生成access_token并成功重定向到onelogin idp(OIDC)中的redirect_uri后如何注销
- php - 如何在 laravel 数据库中检查其他站点导入用户的密码
- javascript - Drupal 8 的 Jquery .once() 问题
- reactjs - 使用 react-testing-library 测试卸载
- javascript - 两个具有不同 css 功能的导航栏导致滚动时导航栏颜色变化不起作用
- python - set(l) 的大 O 复杂度,其中 l 是一个列表
- python - Keras 层的输入
- ffmpeg - 如何使用 ffmpeg 将 CEA-608/708 嵌入到视频中