error while loading shared libraries: libturbojpeg.so: ELF load command address/offset not page-aligned
# 1. 创建一个临时目录用于构建
mkdir -p ~/libturbojpeg_build
cd ~/libturbojpeg_build
# 2. 下载源代码 (以 3.0.0 版本为例,请根据需要更改)
# 您也可以使用 git clone 或下载 tarball
wget https://liquidtelecom.dl.sourceforge.net/project/libjpeg-turbo/3.0.0/libjpeg-turbo-3.0.0.tar.gz
tar xvf libjpeg-turbo-3.0.0.tar.gz
cd libjpeg-turbo-3.0.0``
步骤 2: 配置交叉编译
这一步是关键。您需要使用 CMake 来配置构建系统,明确告诉它使用 aarch64 交叉编译器。
您需要一个 Toolchain 文件 (toolchain.cmake) 来定义交叉编译环境。在您的 ~/libturbojpeg_build 目录下创建一个文件,例如 aarch64-toolchain.cmake:
aarch64-toolchain.cmake 内容:
# ----------------------------------------------------
# 假设您的交叉编译器前缀是 aarch64-linux-gnu
set(CROSS_COMPILE aarch64-linux-gnu)
# ----------------------------------------------------
# 指定目标系统信息
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR aarch64)
# 确保使用外部的编译器
set(CMAKE_C_COMPILER ${CROSS_COMPILE}-gcc)
set(CMAKE_CXX_COMPILER ${CROSS_COMPILE}-g++)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
# 如果您的系统依赖项(如 glibc)位于 sysroot 中,请在此处设置路径
# set(CMAKE_FIND_ROOT_PATH "/path/to/your/aarch64/sysroot")
# 确保在 libjpeg-turbo-3.0.0 目录下
cmake -DCMAKE_TOOLCHAIN_FILE=../aarch64-toolchain.cmake \
-DCMAKE_INSTALL_PREFIX=~/libturbojpeg_aarch64_install \
-DENABLE_STATIC=OFF \
-DENABLE_SHARED=ON \
-DCMAKE_BUILD_TYPE=Release \
.
# 编译
make -j$(nproc)
# 安装到指定的目录
make install
cp ~/libturbojpeg_aarch64_install/lib/libturbojpeg.so****/ascam_ros2_ws/src/ascamera/libs/lib/aarch64-linux-gnu/
1742

被折叠的 条评论
为什么被折叠?



