如果使用--static标志与gcc编译错误

时间:2012-10-28 04:33:25

标签: c gcc

当我尝试编译静态时,我收到以下错误:

gcc  defrag.c -o abc.exe --static
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status

然而,同样的事情在没有静态的情况下编译得很好:

gcc  defrag.c -o abc.exe 

问题:为什么在指定静态时编译失败?

1 个答案:

答案 0 :(得分:3)

错误正在发生,因为“--static”表示链接命令中的所有后续库必须是静态的......但是您只有动态 libc你的系统。

推荐的解决方案:

gcc defrag.c -o abc -lc --static -lmystaticlib

如果您只是为了拥有静态exe而尝试创建一个静态exe - 我建议“不要”。共享库很好。出于许多不同的原因。

这是一个很好的链接: