跳过不兼容的 libpcap.so - 交叉编译

Posted

技术标签:

【中文标题】跳过不兼容的 libpcap.so - 交叉编译【英文标题】:Skipping incompatible libpcap.so - cross compilation [closed] 【发布时间】:2016-07-20 09:51:19 【问题描述】:

我正在尝试将 libpcap 链接到我的项目,但出现错误

skipping incompatible /usr/lib/i386-linux-gnu/libpcap.so when searching for -lpcap

我正在使用交叉编译器 arm linux gcc。

我找到了一些相关问题的主题,但我还没有找到适合我的解决方案。 如何正确链接这个库?

【问题讨论】:

你想做什么?在 i386 电脑上构建 arm 软件? 【参考方案1】:

你需要提供为arm构建的libpcap.so..

您可以通过调用来检查架构:

file libpcap.so

输出:

/usr/lib/x86_64-linux-gnu/libpcap.so.1.5.3:ELF 64 位 LSB 共享对象,x86-64,版本 1 (SYSV),动态链接, BuildID[sha1]=916b377cfe593106dc0b054d63bc4ed0af4ad269,剥离

您可以从herecrosscompile pcap 库

【讨论】:

我尝试交叉编译它但是当我使用 CC=arm-linux-gcc ac_cv_linux_vers=2 ./configure --host=arm-linux --with-pcap=linux 我得到:配置:错误:在 '/.../libpcap-1.7.4 和 C 编译器无法创建可执行文件 @kmbm 在配置日志中检查使用的是什么 C 编译器...也许您应该添加 - 到 --host=arm-linux... 此外您还应该添加构建选项以便配置不尝试执行二进制文件...如果这些都不起作用,请添加 --with-cc=... 和 with-ld=... 来配置命令。 @kmbm 同意 mhk .. 您需要为 arm 提供 gcc 二进制文件的正确名称 - 而不仅仅是复制粘贴我链接的教程.. 你是对的。我已将 arm-linux-gcc 更改为 arm-linux-gnueabi-gcc 并且它可以工作。但我对“make”有疑问。我收到一个错误'./pcap-linux.c:254:14: socklen_t /usr/arm-linux-gnueabi/include/unistd.h:275:21 的冲突类型:注意之前声明的'socklen_t' 在这里我没有修改任何文件。

以上是关于跳过不兼容的 libpcap.so - 交叉编译的主要内容,如果未能解决你的问题,请参考以下文章

在编译时跳过不兼容的库

在搜索 -ldeepsort 时跳过不兼容的 ../tracker/libdeepsort.so

复制活动中的容错通过跳过不兼容的行

搜索 /lib/libpthread.so.0 时跳过不兼容的 /lib/libpthread.so.0

/usr/bin/ld: 搜索 -lQtCore 时跳过不兼容的 /usr/lib/x86_64-linux-gnu/libQtCore.so

如何让 SBT 跳过给定子项目的交叉编译?