寻找libquadmath源码以交叉编译适配aarch64-linux的HDF5
解决aarch64交叉编译HDF5时libquadmath不兼容问题
libquadmath是GCC的组件之一,无需单独寻找独立源码包,直接从对应版本的GCC完整源码中即可提取并交叉编译。以下是具体步骤:
1. 获取GCC 9.5.0源码
下载与你交叉编译器版本一致的GCC 9.5.0完整源码包,解压后,libquadmath的源码位于gcc/libquadmath目录下。
2. 交叉编译适配aarch64的libquadmath
使用你已构建的aarch64-linux交叉工具链执行以下操作:
- 创建独立的编译目录(推荐out-of-tree编译):
mkdir build-libquadmath && cd build-libquadmath - 运行configure脚本,指定目标架构和安装路径:
注意:../gcc/libquadmath/configure --target=aarch64-linux-gnu --prefix=/path/to/your/cross-toolchain-root--prefix需指向你交叉编译器的安装根目录,确保编译后的库会被放入工具链的标准库路径,让HDF5的configure能自动识别。 - 编译并安装:
make -j$(nproc) make install
3. 重新编译HDF5
完成libquadmath安装后,重新配置HDF5,确保工具链指向正确的aarch64版本:
export CC=aarch64-linux-gnu-gcc export CXX=aarch64-linux-gnu-g++ ./configure --host=aarch64-linux-gnu # 添加你的其他HDF5配置参数
额外提示
- 若之前构建交叉编译器时未生成libquadmath,大概率是GCC配置阶段未启用该组件。后续构建GCC交叉编译器时,可添加
--enable-libquadmath参数,一次性完成所有必要组件的编译。 - 确保系统
PATH变量优先指向你的aarch64工具链目录,避免系统默认的x86_64库被优先调用。
内容的提问来源于stack exchange,提问作者user3063547
相关产品推荐
相关产品推荐

