次のコードを使用して、C でシェルを実行しようとしています。
#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
ここで何が問題なのかを理解するのを手伝ってくれる人はいますか?