1

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

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 

问题:为什么指定static时编译失败?

4

1 回答 1

3

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

推荐解决方案:

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

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

这是一个很好的链接:

于 2012-10-28T05:07:44.323 回答