如何解决此错误 'cannot find -lc'?
How do I resolve this error 'cannot find -lc'?
如何在 CentOS 7 中编译此代码?我正在读一本书,在书中 他们在编译时使用 -static 所以我就是这样做的,我得到了下面提到的错误但是当我不使用 -static 时我没有得到错误并且它编译成功。
第一次尝试:
main()
{
exit(0);
}
我在尝试编译时遇到此错误。
$ gcc -static -o exit exit.c
exit.c: In function _main_:
exit.c:3:9: warning: incompatible implicit declaration of built-in function _exit_ [enabled by default]
exit(0);
^
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
第二次尝试:
然后我 google 这个错误,很多文章告诉我要包含 stdlib.h 库,所以我也这样做了,但我得到了这个错误:
代码:
#include <stdlib.h>
main()
{
exit(0);
}
现在编译的时候出现如下错误
$ gcc -static -o exit exit.c
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
linux版本:
$ uname -a
Linux localhost.localdomain 3.10.0-1127.13.1.el7.centos.plus.i686 #1 SMP Thu Jun 25 16:59:06 UTC 2020 i686 i686 i386 GNU/Linux
正如@KamilCuk 指出的那样,这需要一组不同的静态链接库,在我的 CentOS 7 机器上,这会安装正确的库:
# yum install glibc-static
那么编译应该会如您所愿。
这个包安装的库是:
$ rpm -q -l glibc-static
/usr/lib64/libBrokenLocale.a
/usr/lib64/libanl.a
/usr/lib64/libc.a
/usr/lib64/libc_stubs.a
/usr/lib64/libcrypt.a
/usr/lib64/libdl.a
/usr/lib64/libm.a
/usr/lib64/libnsl.a
/usr/lib64/libpthread.a
/usr/lib64/libresolv.a
/usr/lib64/librt.a
/usr/lib64/libutil.a
如何在 CentOS 7 中编译此代码?我正在读一本书,在书中 他们在编译时使用 -static 所以我就是这样做的,我得到了下面提到的错误但是当我不使用 -static 时我没有得到错误并且它编译成功。
第一次尝试:
main()
{
exit(0);
}
我在尝试编译时遇到此错误。
$ gcc -static -o exit exit.c
exit.c: In function _main_:
exit.c:3:9: warning: incompatible implicit declaration of built-in function _exit_ [enabled by default]
exit(0);
^
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
第二次尝试:
然后我 google 这个错误,很多文章告诉我要包含 stdlib.h 库,所以我也这样做了,但我得到了这个错误: 代码:
#include <stdlib.h>
main()
{
exit(0);
}
现在编译的时候出现如下错误
$ gcc -static -o exit exit.c
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
linux版本:
$ uname -a
Linux localhost.localdomain 3.10.0-1127.13.1.el7.centos.plus.i686 #1 SMP Thu Jun 25 16:59:06 UTC 2020 i686 i686 i386 GNU/Linux
正如@KamilCuk 指出的那样,这需要一组不同的静态链接库,在我的 CentOS 7 机器上,这会安装正确的库:
# yum install glibc-static
那么编译应该会如您所愿。
这个包安装的库是:
$ rpm -q -l glibc-static
/usr/lib64/libBrokenLocale.a
/usr/lib64/libanl.a
/usr/lib64/libc.a
/usr/lib64/libc_stubs.a
/usr/lib64/libcrypt.a
/usr/lib64/libdl.a
/usr/lib64/libm.a
/usr/lib64/libnsl.a
/usr/lib64/libpthread.a
/usr/lib64/libresolv.a
/usr/lib64/librt.a
/usr/lib64/libutil.a