Linux下交叉编译LibPCap
下载交叉编译工具链
根据客户需要,下载的交叉编译工具链是 gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
去官网下载
解压设置环境变量
输入指令进行解压操作
tar -xvf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu
进入到解压后的目录
cd gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/
进入到bin目录
cd bin/
打印当前路劲,方便复制到环境变量
pwd
例如我得到的路径如下(根据自己的实际路径来)
/home/pier/RY/Cross_Complier/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin
复制路径到剪切板,输入指令打开环境变量配置文件(不习惯使用vim可以换成gedit)
sudo vim /etc/profile
输入密码确认后,打开文件,按i键进入编辑模式,在文件的末尾增加环境变量声明
export PATH=$PATH:/home/pier/RY/Cross_Complier/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin
输入完成后按ESC键,从编辑模式转换成命令模式,按冒号键输入wq回车保存,然后输入使用source指令让它生效
source /etc/profile
在终端输入版本查询指令,如果出来如下表明成功
pier@ubuntu:~$ aarch64-linux-gnu-gcc -v
Using built-in specs.
COLLECT_GCC=aarch64-linux-gnu-gcc
COLLECT_LTO_WRAPPER=/home/pier/RY/Cross_Complier/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/../libexec/gcc/aarch64-linux-gnu/7.5.0/lto-wrapper
Target: aarch64-linux-gnu
Configured with: '/home/tcwg-buildslave/workspace/tcwg-make-release_0/snapshots/gcc.git~linaro-7.5-2019.12/configure' SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --with-system-zlib --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --enable-fix-cortex-a53-835769 --enable-fix-cortex-a53-843419 --with-arch=armv8-a --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/sysroots/aarch64-linux-gnu --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu/aarch64-linux-gnu/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,fortran,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=aarch64-linux-gnu --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release_0/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 7.5.0 (Linaro GCC 7.5-2019.12)
pier@ubuntu:~$
Tips: 每次打开终端最好都source /etc/profile一下 ,除非已经能打印aarch64-linux-gnu-gcc -v出来版本号了,有时候关闭终端再次打开,环境变量就失效了,要再次source一下才行。
下载libPCap源码包
蓝奏云盘下载 (推荐)
[官网下载](GitHub - the-tcpdump-group/libpcap: the LIBpcap interface to various kernel packet capture mechanism) (github很慢,且更新后不是我使用的这一版本了)
解压libPCap源码
输入解压指令
tar -xvf libpcap-1.10.1.tar.gz
进入到解压后的目录
cd libpcap-1.10.1
输入脚本配置指令
sudo ./configure CC=/home/pier/RY/Cross_Complier/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc --prefix=/home/pier/RY/Cross_env/libpcap-1.10.1-0/lib/aarch64-linux-gnu-7.5.0 --host=aarch64-linux-gnu --with-pcap=linux
CC=交叉编译链gcc的绝对位置,–prefix=后面接想要生成在那个目录下, --host为交叉编译链的前面部分(去掉-gcc之后的部分)
输入make编译指令
sudo make
输入make install生成指令
make install
至此编译完成,可以到指定的目录下找到库文件和头文件
我的库文件位置 /home/pier/RY/Cross_env/libpcap-1.10.1-0/lib/aarch64-linux-gnu-7.5.0/lib
我的头文件位置 /home/pier/RY/Cross_env/libpcap-1.10.1-0/lib/aarch64-linux-gnu-7.5.0/include