gpt4 book ai didi

c -/usr/bin/ld : cannot find -lc while compiling with makefile

转载 作者:太空狗 更新时间:2023-10-29 16:22:06 31 4
gpt4 key购买 nike

上下文优先:我有一个头文件 (event.h)、一个名为 event.c 的程序和主程序 main.c。该程序将被编译,首先生成一个目标程序(event.o),然后是一个单独文件夹中的静态库(libevent.a),然后是可执行程序work1.exe

为此,我创建了这个 makefile:

work1 : main.c libevent.a
gcc -static main.c -L./lib -levent -o work1 -Wall

event.o: event.c
gcc -c event.c -Wall

libevent.a: event.o
ar rcs lib/libevento.a event.o

clean:
rm work1 *.o

执行makefile的结果导致这个错误:

 $ make
gcc -c event.c -Wall
ar rcs lib/libevent.a event.o
gcc -static main.c -L./lib -levent -o work1 -Wall
/usr/bin/ld: cannot find -lc
collect2: ld returned 1 exit status
make: *** [work1] Error 1

知道这里发生了什么吗?有没有办法在不安装任何东西的情况下编译它?

最佳答案

具体错误是下面一行:

/usr/bin/ld: cannot find -lc

链接器找不到静态链接您的库所需的 C 库。您可以通过调用 locate libc.a 来尝试查看 libc.a 是否已经存在于您的系统中。如果返回,添加一个适当的库标志,指向包含 libc.a 的目录。

如果libc.a 没有安装,不幸的是如果你想静态编译你的库你需要安装这个库。由于您声明您使用的是 CentOS,因此您应该能够使用 yum install glibc-static 完成此操作。

关于c -/usr/bin/ld : cannot find -lc while compiling with makefile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16024978/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com