Linux: .so automatisch zu einer anderen .so linken lassen

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: Linux: .so automatisch zu einer anderen .so linken lasse

Beitrag von fat-lobyte » Mi Mär 14, 2012 8:43 pm

oenone hat geschrieben:Du musst immer alle angeben. Deshalb musst du auch bei Gtk+ immer so viel mit übergeben. Zum Glück kann da man die linker-Flags durch pkg-config ermitteln:
[...]

wenn eins fehlt, wirds nicht klappen.
Aha!
Stimmt gar nicht:

Code: Alles auswählen

$ make
cc -fPIC -g   -c -o main.o main.c
cc -fPIC -g   -c -o B.o B.c
cc -fPIC -g   -c -o A.o A.c
cc -shared -o libA.so -L. A.o 
cc -shared -o libB.so -L. B.o -lA
cc -o prog -fPIC -g -L. main.o -lB
$ ./prog 
Blub!
$
Kompiliert ohne Fehler. Beachtet, dass die resultierende exe nur gegen libB gelinkt wurde! Anschließend läuft auch das Programm!
sharedlinking.tar.gz
Interessante Geschichte, wieder was gelernt. Dann lags bei libc++ an was anderem, wahrscheinlich hat hier Cmake irgendwas nicht ganz richtig gemacht.

Trotzdem danke für die Hilfe!

[edit] ldd zeigt übrigens das:

Code: Alles auswählen

$ LD_LIBRARY_PATH=. ldd prog 
	linux-vdso.so.1 =>  (0x00007fffd9bff000)
	libB.so => ./libB.so (0x00007f8e5b8d1000)
	libc.so.6 => /lib64/libc.so.6 (0x0000003cb9200000)
	libA.so => ./libA.so (0x00007f8e5b6a4000)
	/lib64/ld-linux-x86-64.so.2 (0x0000003cb8e00000)
Also hier sieht man, dass die Exe sehr wohl gegen libA UND libB gelinkt ist.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Linux: .so automatisch zu einer anderen .so linken lasse

Beitrag von Xin » Fr Mär 16, 2012 9:50 am

Willkommen in meiner Todo-Linksammlung. ;-)

Danke für die Auflösung, damit werde ich mich später nochmal detaillierter beschäftigen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten