Jak zbudować program w C za pomocą niestandardowej wersji glibc i statycznego linkowania?

Zbudowałem glibc 2.14 i zainstalowałem go w katalogu~/GLIBC/glibc_install. Teraz chcę budować i uruchamiać programy przy użyciu tej biblioteki C zamiast domyślnej biblioteki C mojego systemu.

Aby mieć pewność, że korzystam z mojego niestandardowego glibc, dodałem wywołanie do wprowadzeniaglibc/stdio-common/printf.c:__printf wydrukować wiadomość.

Następnie odbudowałem i ponownie zainstalowałem glibc.

Następnie napisałem program „Hello, World” i próbowałem go skompilować i połączyć w następujący sposób:

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

Ale otrzymuję następujący raport błędu linkera:

/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

Co ja robię źle?

questionAnswers(3)

yourAnswerToTheQuestion