You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查看aarch64-none-elf交叉编译工具链的glibc版本?

查看aarch64-none-elf-gcc工具链的glibc版本

当前使用的ARM64编译器版本信息:

$ aarch64-none-elf-gcc --version
aarch64-none-elf-gcc (GNU Toolchain for the Arm Architecture 11.2-2022.02 (arm-11.14)) 11.2.1 20220111
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

可通过以下命令下载glibc源码:

git clone git://sourceware.org/git/glibc.git

查看工具链glibc版本的几种方法:

  • 通过头文件宏定义查看
    找到工具链的安装目录,进入aarch64-none-elf/include路径,打开features.h文件,查找__GLIBC__和__GLIBC_MINOR__宏定义,例如:

    #define __GLIBC__ 2
    #define __GLIBC_MINOR__ 34
    

    上述内容表示glibc版本为2.34。

  • 通过readelf查看库文件版本
    如果工具链附带glibc库文件,找到libc.so或libc.a的路径,执行以下命令:

    aarch64-none-elf-readelf -V /path/to/libc.so
    

    输出结果中会包含glibc的版本信息。

  • 编译测试程序查看
    编写测试代码test.c:

    #include <stdio.h>
    #include <features.h>
    
    int main() {
        printf("GLIBC version: %d.%d\n", __GLIBC__, __GLIBC_MINOR__);
        return 0;
    }
    

    用目标编译器编译:

    aarch64-none-elf-gcc -o test test.c
    
    • 若能在目标环境(如QEMU或开发板)运行,直接执行程序即可看到版本;
    • 裸机环境无法运行时,可查看预处理输出确认宏定义:
      aarch64-none-elf-gcc -E test.c | grep __GLIBC__
      

注意事项

aarch64-none-elf属于裸机目标工具链,部分版本默认不搭载glibc,而是使用newlib作为C库。若工具链使用的是newlib,需排查newlib的printf实现而非glibc。可通过查看工具链库目录下是否存在libnewlib.a来确认。

内容的提问来源于stack exchange,提问作者Chan Kim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 16:04:56