企业网站模板下载需谨慎半数留有后门,wordpress两侧悬浮框,大气金融投资企业网站模板,seo外链技巧交叉编译 acl
概述
访问控制列表#xff08;Access Control Lists#xff0c;ACL#xff09;是应用在路由器接口的指令列表。在 Linux 系统中#xff0c;ACL 用于设定用户针对文件的权限#xff0c;而不是在交换路由器中用来控制数据访问的功能#xff08;类似于防火墙…交叉编译 acl
概述
访问控制列表Access Control ListsACL是应用在路由器接口的指令列表。在 Linux 系统中ACL 用于设定用户针对文件的权限而不是在交换路由器中用来控制数据访问的功能类似于防火墙。
可以从 https://savannah.nongnu.org/projects/acl 获取 ACL 源码。 同时 ACL 也提供了 git 仓库进行代码管理与开发。
网址https://savannah.nongnu.org/projects/aclgithttps://git.savannah.nongnu.org/cgit/acl.git
下载
开发版本 (最新)
如果以研究学习为目的或者希望尝试最新特性又或者希望参与到 acl 的开发中可以直接从 git 上拉取最新源码拉取命令
git clone https://git.savannah.nongnu.org/git/acl.git发行版本
如果以商用量产为目的一般选择正式的发行版本为佳。在 acl 的 Download 页面源码以压缩包的形式提供根据需求选择合适的版本进行下载以 2.3.1 为例下载源码包 acl-2.3.1.tar.gz.
也可以直接使用 wget 命令下载
wget http://download.savannah.nongnu.org/releases/acl/acl-2.3.1.tar.gz交叉编译
解压缩源码包如果使用 git clone 拉回来的代码可以忽略这一步
tar -xvf acl-2.3.1.tar.gz解压缩源码包之后可以先阅读 README 文档从源码包的文件结构来看acl 使用的是 ./configure, make, make install 的编译方法经典的 UNIX 软件部署模式。
依赖关系
在 acl 的文档及配置文件中有提及到依赖关系最主要的是依赖 attr 库完整编译可以先参考「交叉编译 attr」。需要注意的点就是需要使用 make DESTDIR$BUILDSYSROOT install 将编译产物部署到 sysroot 目录便于 acl 依赖效果类似于 apt install *-dev 安装开发依赖包。
首先创建一个环境配置文件 aarch64-environment-setup配置最重要的交叉编译环境变量。
aarch64-environment-setup:
export TOOLCHAIN_ROOT/opt/toolchains/aarch64--glibc--stable-2022.03-1
export BUILDSYSROOT$TOOLCHAIN_ROOT/aarch64-buildroot-linux-gnu/sysroot
export PATH$TOOLCHAIN_ROOT/bin:$PATHexport PREFIX/usrexport CCaarch64-linux-gcc --sysroot$BUILDSYSROOT
export CXXaarch64-linux-g --sysroot$BUILDSYSROOT
export CPPaarch64-linux-gcc -E --sysroot$BUILDSYSROOT
export LDaarch64-linux-ld --sysroot$BUILDSYSROOT
export ARaarch64-linux-ar
export ASaarch64-linux-as
export NMaarch64-linux-nm
export GDBaarch64-linux-gdb
export OBJDUMPaarch64-linux-objdump
export OBJCOPYaarch64-linux-objcopy
export RANLIBaarch64-linux-ranlib
export READELFaarch64-linux-readelf
export STRIPaarch64-linux-stripexport CONFIGURE_FLAGS--targetaarch64-linux --hostaarch64-linux --buildx86_64-linux --with-sysroot$BUILDSYSROOTexport PKG_CONFIG_SYSROOT_DIR$BUILDSYSROOT
export PKG_CONFIG_PATH$BUILDSYSROOT/usr/lib/pkgconfig:$BUILDSYSROOT/usr/share/pkgconfig在本示例中交叉编译工具位于 /opt/toolchains/aarch64--glibc--stable-2022.03-1/bin 目录下将该目录配置到 PATH 环境变量让系统能够正确搜索到。同时在配置 CCCXXCPP 与 LD 环境变量时指定 --sysrootdir 参数让交叉编译器搜索 dir 目录下的头文件与库文件而不是 /usr/include 及 /usr/lib。
source aarch64-environment-setup
./configure --prefix/usr $CONFIGURE_FLAGS
make
make DESTDIR$BUILDSYSROOT install-strip在源码目录下创建环境设置文件并调用 source 命令让环境变量生效执行源码包的 configure 文件带上 --prefix 参数指定安装路径。在配置文件中定义了临时的 CONFIGURE_FLAGS 来指定 --host 与 --build 选项的值具体的说明可以使用 ./configure --help 命令进行查阅执行 make 命令编译源码使用 DESTDIR 参数作为安装目标文件的前缀变量后面带上你希望安装到的文件夹路径在本示例中BUILDSYSROOT 指的是交叉编译工具链的 sysroot 目录此环境变量在 aarch64-environment-setup 中已定义。更详细介绍可以参考 DESTDIR 官方介绍也可以参考我的博文《交叉编译 libcap》关于 DESTDIR 的用法说明。
最终你就可以在 $BUILDSYSROOT/usr 文件夹中找到交叉编译好的 acl 的头文件及库文件。Good luck.
欢迎关注我的公众号飞翔的小黄鸭 也许会发现不一样的风景 △\triangle△ 交叉编译 attr