1、设置工具链文件
在目录~/Documents/c_example/libevent下创建文件aarch64-toolchain.cmake,内容如下:
# aarch64-toolchain.cmake
# 基本交叉编译配置
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
# 指定编译器和连接器
set(CMAKE_C_COMPILER aarch64-linux-gcc)
set(CMAKE_CXX_COMPILER aarch64-linux-g++)
set(CMAKE_LINKER aarch64-linux-ld)
2、生成构建脚本
切换到libevent源码目录:~/Documents/c_example/libevent/libevent-release-2.1.12-stable,使用如下指令生成构建目录和Makefiles:
cmake -Bbuild -DCMAKE_TOOLCHAIN_FILE=../aarch64-toolchain.cmake -DEVENT__DISABLE_OPENSSL=ON -DEVENT__DISABLE_REGRESS=ON -DCMAKE_INSTALL_PREFIX=~/libevent
3、构建并安装目标
cmake --build build/ --config Release --target install
编译生成的库文件和头文件会安装到目录~/libevent中,把~/libevent/lib下的库文件拷贝到目标平台特定目录下,拷贝到目标平台后需要重新建立库文件的所有软连接
导出libevent到环境变量:
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:event库文件目录
之后可以执行交使用libevent交叉编译的可执行文件