在64位Debian上交叉编译32位时找不到Libpcap
Libpcap not found when cross-compiling 32-bit on a 64-bit Debian
我正试图在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++-multlib(显然,因为交叉编译对于所有不使用libpcap的应用程序来说都很好)。我怀疑应该有一个libpcap-dev-i386我可以安装,但似乎没有。
也许我应该提到的是,该应用程序成功地编译和链接为64位。
有人知道我在这里缺了什么吗?
您可以自己编译libpcap。这可能是比依赖软件包更好的解决方案。使用针对32位体系结构的configure,然后让编译器LDFLAGS指向您的lib或将其安装在/usr/lib32/中
相关文章:
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 找不到QtResource文件中的文件
- VC++本机单元测试,找不到调试符号
- RegGetValue在当前用户下找不到名称
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- c++找不到具有相同哈希的无序集合元素
- 找不到以下加速库:boost_fiber
- 找不到 FLTK(缺少:FLTK_INCLUDE_DIR)
- 设置 Visual Studio for MPI: 找不到标识符错误
- "assimp/config.h"找不到,但它在文件夹中
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- C++系统找不到指定的文件错误
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- vcpkg 添加新库,但找不到
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 在64位Debian上交叉编译32位时找不到Libpcap