我正在尝试使用以下代码在 C 中执行 shell:
#include <unistd.h>
int main(){
char *name[2];
name[0] = "/bin/sh";
name[1] = NULL;
execve(name[0],name,NULL);
return(0);
}
为了编译它,我使用了 gcc -static 标志:
gcc -static -o shell shell.c
但是,我收到以下错误:
/bin/ld: cannot find -lc
到目前为止,我已经尝试运行:ld -lc --verbose
这就是我发现的:
attempt to open /usr/x86_64-mageia-linux-gnu/lib64/libc.so failed
attempt to open /usr/x86_64-mageia-linux-gnu/lib64/libc.a failed
attempt to open /usr/local/lib64/libc.so failed
attempt to open /usr/local/lib64/libc.a failed
谁能帮我弄清楚这里出了什么问题?