Frage

Ich sitze auf einer OpenSuse 11.1 x64 Box und ich habe ein Modul, dass Anwendungen sigc ++. Wenn wie diese Verknüpfung:

g++ [a lot of o's, L's and l's] -lsigc-2.0

ich

/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lsigc-2.0

Allerdings ist die Bibliothek gibt.
In dem Dateisystem:

$ sudo find / -name "libsigc-2.0*"
/usr/lib64/libsigc-2.0.so.0.0.0
/usr/lib64/libsigc-2.0.so.0
/usr/lib64/libsigc-2.0.so

In ld.so.conf ich habe:

/usr/lib64

Und wenn ldconfig Aufruf:

$ ldconfig -v | grep sigc
libsigc-2.0.so.0 -> libsigc-2.0.so.0.0.0

Warum?

War es hilfreich?

Lösung

Ich bin so dumm. Es ist eine alte Code-Basis und kurz vor der -lsigc-2.0-Anweisung Ich hatte ein

-Wl,-Bstatic

Offensichtlich gibt es keine statischen Librarys für libsigc (mehr).

Andere Tipps

Es ist möglich, dass libsigc-2.0.so mit einem verlinkt SONAME andere als libsigc-2.0.

  

objdump -p /usr/lib64/libsigc-2.0.so | grep SONAME

Wenn Sie sehen, etwas Unerwartetes, z.B. libsigc, müssen Sie möglicherweise eine zusätzliche Symlink mit diesem Namen erstellen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top