【发布时间】:2012-10-17 20:49:57
【问题描述】:
当我尝试编译静态时,我收到以下错误:
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时编译失败?
【问题讨论】:
当我尝试编译静态时,我收到以下错误:
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时编译失败?
【问题讨论】:
发生错误是因为“--static”表示链接命令中的所有后续库必须是静态的......但你只有一个dynamic libc你的系统。
推荐解决方案:
gcc defrag.c -o abc -lc --static -lmystaticlib
如果您只是为了获得静态 exe 而尝试创建静态 exe - 我建议“不要”。共享库很好。出于许多不同的原因。
这是一个很好的链接:
【讨论】: