Aha!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.
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!
$
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)