Wie erstelle ich ein C-Programm mit einer benutzerdefinierten Version von glibc und statischer Verknüpfung?

Ich habe glibc 2.14 erstellt und im Verzeichnis installiert~/GLIBC/glibc_install. Jetzt möchte ich Programme mit dieser C-Bibliothek anstelle der Standard-C-Bibliothek meines Systems erstellen und ausführen.

Um sicherzugehen, dass ich meine benutzerdefinierte Glibc verwendet habe, habe ich einen Aufruf für Puts in hinzugefügtglibc/stdio-common/printf.c:__printf um eine Nachricht zu drucken.

Dann habe ich glibc neu aufgebaut und neu installiert.

Dann habe ich ein "Hello, World" -Programm geschrieben und versucht, es wie folgt zu kompilieren und zu verknüpfen:

gcc -nodefaultlibs -static -lgcc -L~/GLIBC/glibc_install/lib -o myprog myprog.c

Aber ich bekomme folgenden Linker-Fehlerbericht:

/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o: In function `_start':
(.text+0x19): undefined reference to `__libc_csu_init'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/crt1.o: In function `_start':
(.text+0x25): undefined reference to `__libc_start_main'
/tmp/ccACTQEp.o: In function `main':
c1.c:(.text+0xa): undefined reference to `puts'
collect2: ld returned 1 exit status

Was mache ich falsch?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage