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

在NASM x64(Linux Fedora)中使用printf编译报错求助

解决NASM x64(Fedora)中链接printf时的"cannot find -lc"错误

错误原因

你使用gcc -static尝试静态链接时,Fedora默认未安装静态版本的C标准库(glibc-static),导致链接器无法找到静态库文件libc.a,从而抛出"cannot find -lc"和链接失败的错误。

解决方案

方案1:安装静态C库(用于静态链接)

执行以下命令安装静态库包:

sudo dnf install glibc-static

安装完成后,重新运行原链接命令即可:

gcc -static -o printf printf.o

方案2:使用动态链接(推荐,无需额外安装)

直接去掉-static参数,使用默认的动态链接方式(Fedora默认已安装动态C库):

nasm -felf64 printf.asm 
gcc -o printf printf.o

运行生成的程序:

./printf

会输出:The number is: 10

代码正确性验证

你的汇编代码逻辑完全正确:

  • 用rdi传递格式化字符串地址,符合x64 System V调用约定
  • rsi传递整数参数10
  • xor eax, eax告知printf没有浮点参数
  • 调用printf后通过syscall正常退出

内容的提问来源于stack exchange,提问作者Vladimir Curiel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:41:31