交叉编译libpcap-dev aarch64

问题描述 投票:0回答:1

我正在尝试为arm64交叉编译libpcap-dev,我可以在armhf上正常工作,但是arm64给我带来了很多麻烦。

当前我正在安装所有编译器工具链

RUN apt update && apt install -y \
    gcc-arm* \
    gcc-aarch64* \
    libc6-dev-armhf-cross\
    libc6-dev-arm64-cross\
    byacc flex \
    libpcap-dev \
    file

然后我正在尝试使用此命令进行编译

export PCAPV=1.9.1
wget http://www.tcpdump.org/release/libpcap-$PCAPV.tar.gz
tar xvf libpcap-$PCAPV.tar.gz
cd libpcap-$PCAPV
export CC=aarch64-linux-gnueabi-gcc
./configure --host=aarch64-linux --with-pcap=linux
cat config.log
make

config.log文件看起来像这样:

configure:3034: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "pcap"
| #define PACKAGE_TARNAME "pcap"
| #define PACKAGE_VERSION "1.9.1"
| #define PACKAGE_STRING "pcap 1.9.1"
| #define PACKAGE_BUGREPORT ""
| #define PACKAGE_URL ""
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:3039: error: in `/app/libpcap-1.9.1':
configure:3041: error: C compiler cannot create executables
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-pc-linux-gnu
ac_cv_env_CC_set=set
ac_cv_env_CC_value=aarch64-linux-gnueabi-gcc
ac_cv_env_CFLAGS_set=
ac_cv_env_CFLAGS_value=
ac_cv_env_CPPFLAGS_set=
ac_cv_env_CPPFLAGS_value=
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=
ac_cv_env_LDFLAGS_value=
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_YACC_set=
ac_cv_env_YACC_value=
ac_cv_env_YFLAGS_set=
ac_cv_env_YFLAGS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=aarch64-linux
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=aarch64-unknown-linux-gnu
ac_cv_prog_CC=aarch64-linux-gnueabi-gcc
ac_cv_target=aarch64-unknown-linux-gnu

## ----------------- ##
## Output variables. ##
## ----------------- ##

ADDLARCHIVEOBJS=''
ADDLOBJS=''
AR=''
BT_MONITOR_SRC=''
BT_SRC=''
BUILD_RPCAPD=''
CC='aarch64-linux-gnueabi-gcc'
CFLAGS=''
CPP=''
CPPFLAGS=''
DBUS_SRC=''
DEFS=''
DEPENDENCY_CFLAG=''
DYEXT=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
EXEEXT=''
EXTRA_NETWORK_LIBS=''
GREP=''
INSTALL_DATA=''
INSTALL_PROGRAM=''
INSTALL_RPCAPD=''
INSTALL_SCRIPT=''
LDFLAGS=''
LEX=''
LEXLIB=''
LEX_OUTPUT_ROOT=''
LIBOBJS=''
LIBS=''
LN_S=''
LTLIBOBJS=''
MAN_ADMIN_COMMANDS=''
MAN_DEVICES=''
MAN_FILE_FORMATS=''
MAN_MISC_INFO=''
MKDEP=''
NETFILTER_SRC=''
NETMAP_SRC=''
OBJEXT=''
PACKAGE_BUGREPORT=''
PACKAGE_NAME='pcap'
PACKAGE_STRING='pcap 1.9.1'
PACKAGE_TARNAME='pcap'
PACKAGE_URL=''
PACKAGE_VERSION='1.9.1'
PATH_SEPARATOR=':'
PCAP_SUPPORT_BT=''
PCAP_SUPPORT_DBUS=''
PCAP_SUPPORT_NETFILTER=''
PCAP_SUPPORT_NETMAP=''
PCAP_SUPPORT_PACKET_RING=''
PCAP_SUPPORT_RDMASNIFF=''
PCAP_SUPPORT_USB=''
PKGCONFIG=''
PTHREAD_LIBS=''
RANLIB=''
RDMA_SRC=''
RPCAPD_LIBS=''
SHELL='/bin/bash'
SHLICC2=''
SSRC=''
USB_SRC=''
VALGRINDTEST_SRC=''
V_CCOPT=''
V_DEFS=''
V_FINDALLDEVS=''
V_INCLS=''
V_LEX=''
V_LIB_CCOPT_FAT=''
V_LIB_LDFLAGS_FAT=''
V_PCAP=''
V_PROG_CCOPT_FAT=''
V_PROG_LDFLAGS_FAT=''
V_RPATH_OPT=''
V_SHLIB_CCOPT=''
V_SHLIB_CMD=''
V_SHLIB_OPT=''
V_SONAME_OPT=''
V_YACC=''
YACC=''
YFLAGS=''
ac_ct_CC=''
bindir='${exec_prefix}/bin'
build='x86_64-pc-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='pc'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host='aarch64-unknown-linux-gnu'
host_alias='aarch64-linux'
host_cpu='aarch64'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='NONE'
program_transform_name='s,x,x,'
psdir='${docdir}'
runstatedir='${localstatedir}/run'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target='aarch64-unknown-linux-gnu'
target_alias=''
target_cpu='aarch64'
target_os='linux-gnu'
target_vendor='unknown'

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "pcap"
#define PACKAGE_TARNAME "pcap"
#define PACKAGE_VERSION "1.9.1"
#define PACKAGE_STRING "pcap 1.9.1"
#define PACKAGE_BUGREPORT ""
#define PACKAGE_URL ""

configure: exit 77

我已经尝试过将设置变量设置为aarch64和arm64的每种组合,我想到了。我想我缺少明显的东西。

compiler-errors arm tcpdump arm64 libpcap
1个回答
0
投票

经过更多搜索后,我找到了答案。张贴在这里供后代使用。我设置了错误的编译器标志,它需要看起来像这样:

wget http://www.tcpdump.org/release/libpcap-$PCAPV.tar.gz
tar xvf libpcap-$PCAPV.tar.gz
cd libpcap-$PCAPV
export CC=aarch64-linux-gnu-gcc
export CFLAGS='-Os'
./configure --host=aarch64-unknown-linux-gnu --with-pcap=linux
cat config.log
make
© www.soinside.com 2019 - 2024. All rights reserved.