Ich versuche, mit der statischen libc.a und einer dynamischen Bibliothek .so erfolglos zu verbinden.Wie man mit dynamischer Bibliothek (.so) und statischer libc.a verbindet
habe ich tryied bereits folgendes:
Zum einen teste ich mit allen dynamisch:
- gcc -shared libtest.c -o libtest.so
- gcc -c Haupt .c -o main.o
- gcc main.o -o test -L. -ltest
Es funktioniert (kompilieren und ausführen)
Zweitens teste ich, was ich will (dynamische lib und statische libc):
- gcc -shared libtest.c -o libtest. so
- gcc -c main.c -o main.o
- gcc main.o -o Test libtest.so /usr/lib/libc.a
Es kompiliert, aber bei der Ausführung segfault! Ein strace zeigen, dass es versucht, auf libc.so zugreifen !!!
Schließlich habe ich versucht, eine einfache Progamm ohne Bezug auf dynamische lib
- gcc -static main.c zu kompilieren -> kompilieren ok, ok laufen
- gcc main.c/usr /lib/libc.a verursacht -> kompilieren ok, führen: Segmentierungsfehler (eine strace zeigen, dass es den Zugang zu libc.so)
Wie das zu tun?
Danke
Welches Betriebssystem? Mehr Leute sehen die Frage, wenn Sie ein Tag für das Betriebssystem hinzufügen, an dem Sie interessiert sind. – caf
Was ist die verwendete Version von gcc? – BHS