c - 如何为 Arm Linux 构建静态版本的 pcap 库

标签 c linux arm cross-compiling libpcap

我在这里看到了libpcap https://github.com/the-tcpdump-group/libpcap?files=1

我有arm linux的编译器。

如何将 libpcap 构建到文件,以便我可以在项目中静态链接到该库?

我没有找到 Arm 的 MakeFile。

最佳答案

在 Ubuntu 16.04 86_64 或更高版本上,假设安装了 bison 和 flex,并且 gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf.tar.xz下载并解压到 /opt 目录中,从头开始交叉编译最新版本的可能过程是:

wget https://github.com/the-tcpdump-group/libpcap/archive/libpcap-1.9.1.tar.gz
tar zxf libpcap-1.9.1.tar.gz
cd libpcap-libpcap-1.9.1
CROSS_COMPILE=/opt/arm/9/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf- CC=${CROSS_COMPILE}gcc ./configure --host=arm-none-linux-gnueabihf --prefix=$(pwd)/libpcap-1.9.1-arm-none-linux-gnueabihf
CROSS_COMPILE=/opt/arm/9/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/bin/arm-none-linux-gnueabihf- CC=${CROSS_COMPILE}gcc make install

库和包含文件将安装在libpcap-libpcap-1.9.1/libpcap-1.9.1-arm-none-linux-gnueabihf中:

ls -gG  -a libpcap-1.9.1-arm-none-linux-gnueabihf/include libpcap-1.9.1-arm-none-linux-gnueabihf/lib
libpcap-1.9.1-arm-none-linux-gnueabihf/include:
total 24
drwxr-xr-x 3 4096 Feb  6 13:07 .
drwxrwxr-x 6 4096 Feb  6 13:07 ..
drwxr-xr-x 2 4096 Feb  6 13:07 pcap
-rw-r--r-- 1 2294 Feb  6 13:07 pcap-bpf.h
-rw-r--r-- 1 2226 Feb  6 13:07 pcap.h
-rw-r--r-- 1 2024 Feb  6 13:07 pcap-namedb.h

libpcap-1.9.1-arm-none-linux-gnueabihf/lib:
total 2108
drwxr-xr-x 3    4096 Feb  6 13:07 .
drwxrwxr-x 6    4096 Feb  6 13:07 ..
-rw-r--r-- 1 1199090 Feb  6 13:07 libpcap.a
lrwxrwxrwx 1      12 Feb  6 13:07 libpcap.so -> libpcap.so.1
lrwxrwxrwx 1      16 Feb  6 13:07 libpcap.so.1 -> libpcap.so.1.9.1
-rwxr-xr-x 1  942752 Feb  6 13:07 libpcap.so.1.9.1
drwxr-xr-x 2    4096 Feb  6 13:07 pkgconfig

我希望这会有所帮助。

剩下的就是:Flex 和 Bison 可以使用以下方式安装:

sudo apt-get install flex bison

关于c - 如何为 Arm Linux 构建静态版本的 pcap 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60099817/

相关文章:

linux - 54.148.143.49 连接超时

linux - 'sudo -su' 到底是什么?

linux - 关于网络流量的 "sth"是什么

c++ - 在 beaglebone black 上使用 arm-linux-gnueabihf 时跳过不兼容错误

使用共享库交叉编译应用程序

c - 由 C libxml 和 libxslt 提供支持的 node.js

c - 如何在c中将文本文件中的全文接收到服务器中?

c - 从 GValue 中获取对象

c - 字符串文字和指针有什么区别?

c++ - -fPIC错误交叉编译openssl