Domanda

Sono seduto su un OpenSuse 11.1 x 64 Box e ho un modulo che utilizza SIGC ++. Quando si collegano in questo modo:

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

ho

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

Tuttavia la biblioteca è lì.
Nel file system:

$ 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 ho:

/usr/lib64

E quando si richiama ldconfig:

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

Perché?

È stato utile?

Soluzione

Sono così stupido. Si tratta di una vecchia base di codice e poco prima della -lsigc-2.0 dichiarazione che ho avuto un

-Wl,-Bstatic

Ovviamente, non ci sono librarys statici per libsigc (più).

Altri suggerimenti

E 'possibile che libsigc-2.0.so era legato con una Soname diverso libsigc-2.0.

  

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

Se vedete qualcosa di inaspettato, ad esempio, libsigc, potrebbe essere necessario creare un collegamento simbolico supplementare con quel nome.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top