Sto provando a compilare una libreria condivisa per sistemi che non hanno un libstdC++ abbastanza nuovo per eseguirlo, il che significa che ho bisogno di collegare staticamente libstdC++ nella libreria. Sto cercando di collegarsi direttamente ad un libstdC++ (-Wl,-Bstatic -L/path/to/lib64 -lstdc++
), ma sto ottenendo un errore che sembra indicare che il mio libstdC++ A non è stato collegato con PIC:..Come si compila gnu libstdC++. A con PIC?
/usr/bin/ld: lib64/libstdc++.a(compatibility.o): relocation R_X86_64_32 against `typeinfo for __cxxabiv1::__forced_unwind' can not be used when making a shared object; recompile with -fPIC
lib64/libstdc++.a: could not read symbols: Bad value
Ho provato a ricompilare GCC con CFLAGS = "- fPIC" e CXXFLAGS = "- fPIC", ma sembra che non abbia fatto nulla.
Aiuto?
È documentato ovunque? Non è su http://gcc.gnu.org/install/configure.html – bobpoekert
Ma se si passa alla sottodirectory/libstdC++ - v3 e si esegue 'configure --help', lo vedrai. –
oakad
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28811 - il problema delle pic con le librerie stdC++ ha una storia abbastanza turbolenta. – oakad