在AMD64Linux环境下交叉编译cURL到AArch64

更新时间:2023-07-28 06:47:10 阅读: 评论:0

在AMD64Linux 环境下交叉编译cURL 到AArch64
⽬录
概述
本⽂介绍了 在 AMD64 Linux 的本机编译以及交叉编译到 AArch64 的⽅式。在写这篇⽂章是⽤的 cURL 版本是 7.77.0。相关链接:。
本机编译如果想启⽤ (⽐如想使⽤ HTTPS 协议),且系统安装了 OpenSSL,将上⾯的 --without-openssl  改成 --with-openssl 。如果想⾃定义路径(⽐如使⽤):修改上⾯的 OpenSSL_DIR  为⾃定义的 OpenSSL 的路径。
如果想启⽤ zlib,⽅法和启动 OpenSSL 类似。
其它链接:。
到 AArch64
可⾃⾏调整交叉编译器的⼯具链。
如果想使⽤ OpenSSL,请参考本机编译。
便携脚本将上⾯两种编译⽅式综合到⼀个脚本中:./configure --without-openssl --prefix
="$PWD /target"
OpenSSL_DIR=<OpenSSL Dir >export  CPPFLAGS=-I "$OpenSSL_DIR"/include
export  LDFLAGS=-L "$OpenSSL_DIR"/lib
./configure                      \
--with-openssl ="$OpenSSL_DIR" \
--prefix ="$PWD /target"
cross_compile_prefix=aarch64-linux-gnu-
export  AR="$cross_compile_prefix"ar
export  AS="$cross_compile_prefix"as
export  LD="$cross_compile_prefix"ld
export  RANLIB="$cross_compile_prefix"ranlib export
CC="$cross_compile_prefix"gcc
export  NM="$cross_compile_prefix"nm
.
/configure                      \
--host =aarch64-none-linux-gnu \
--build =x86_64-none-linux-gnu \
--with-openssl ="$OpenSSL_DIR" \
父母催婚
--prefix ="$PWD /target"
#!/bin/bash
t  -e
if  [ $# -lt 2 ]; then
if[$# -lt 2];then
echo"Usage:"
echo"    ./$(baname "$0") amd64|aarch64 <source> [<cross compile prefix>]" exit1孔坦
fi
host=$1
小儿肚脐贴project_dir="$2"
cross_compile_prefix=$3
if["$host"="aarch64" -a "$cross_compile_prefix"=""];then
cross_compile_prefix=$(which aarch64-linux-gnu-gcc)
cross_compile_prefix=${cross_compile_prefix%gcc}
fi洗面奶的作用
folder=$(cd "$(dirname "$0")" && pwd)
target_dir="$folder/$host"
build_dir="$folder/build_$host"
if[ -d "$target_dir"];then
chmod -R u+w "$target_dir"
rm -rf "$target_dir"
fi
rm -rf "$build_dir"
mkdir -p "$build_dir"
pushd"$build_dir"
if["$host"="amd64"];then
"$project_dir"/configure \
-
-without-openssl \
--prefix="$target_dir"
# --with-openssl
elif["$host"="aarch64"];then
# OpenSSL_DIR=$HOME/third-party/openssl/openssl-1.1.1k/aarch64
# zlib_DIR=$HOME/third-party/zlib/zlib-1.2.11/aarch64
# export CPPFLAGS="-I$OpenSSL_DIR/include -I$zlib_DIR/include"
# export LDFLAGS="-L$OpenSSL_DIR/lib -I$zlib_DIR/lib"
export AR="$cross_compile_prefix"ar
人口构成
export AS="$cross_compile_prefix"as
export LD="$cross_compile_prefix"ld
export RANLIB="$cross_compile_prefix"ranlib
export CC="$cross_compile_prefix"gcc
export NM="$cross_compile_prefix"nm
"$project_dir"/configure \
--host=aarch64-none-linux-gnu \
--build=x86_64-none-linux-gnu \
--without-openssl            \
非暴力沟通读后感--without-zlib                \
就业工作总结
--prefix="$target_dir"
el
echo"$host is not supported"
echo"support: amd64, aarch64"
exit1
fi
# 512 MB per job
mem_limit=$(($(grep MemFree /proc/meminfo | tr -s ' ' | cut -d' ' -f2) / 1024 / 1024 * 2)) cpu_limit=$(nproc)
make_jobs=$(($cpu_limit < $mem_limit? $cpu_limit: $mem_limit))
make_jobs=$(($make_jobs < 1? 1: $make_jobs))
make -j$make_jobs
make install -j2
popd
chmod -R -w "$target_dir"
保存以上命令到脚本⽂件 build.sh ,再运⾏以下命令即可编译相应的 libcurl:还可以在命令最后指定交叉编译器,⽐如:/usr/bin/aarch64-linux-gnu-。
如果需要启⽤ OpenSSL 和 zlib,可以参考前⾯的本机编译和脚本⾥的注释进⾏修改。相关链接。。。chmod
-R -w "$target_dir"rm  -rf "$build_dir"政教处工作职责
# 本机编译
./build.sh amd64 <SOURCE DIR >
# 交叉编译
./build.sh aarch64 <SOURCE DIR >

本文发布于:2023-07-28 06:47:10,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1099644.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:编译   交叉   工作   命令   系统
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图