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

ARM64 Ubuntu下编译C程序遇GCC链接错误求助

问题分析与解决

核心原因

错误中的EM:62是ELF文件的架构标识,对应**x86-64(AMD64)**平台,而你当前运行的是ARM64架构的Ubuntu系统。这说明isPrime.o是用x86编译器生成的,和当前ARM64平台的二进制格式不兼容,导致链接器报错。

解决步骤

  • 彻底清理所有旧的目标文件和可执行文件,避免残留的x86格式文件干扰:
    make clean && rm -f isPrime.o primeNumber.o primeNumber
    
  • 确认当前使用的gcc是ARM64版本:
    gcc -v
    
    查看输出中的Target字段,应该显示类似aarch64-linux-gnu的ARM64目标标识。
  • 检查Makefile,确保包含isPrime.c的编译规则,比如:
    isPrime.o: isPrime.c
        gcc -c -Wall -o isPrime.o isPrime.c
    
    如果缺少这条规则,链接时会直接使用已存在的x86版本isPrime.o,导致报错。
  • 重新执行编译:
    make
    
  • 如果Makefile没有自动编译isPrime.c,可以手动先编译它再执行make:
    gcc -c -Wall -o isPrime.o isPrime.c
    make
    

内容的提问来源于stack exchange,提问作者Zixuan Q

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:52:08