Así que ahora estoy desesperado en la búsqueda de una solución para esto. I'm compilar una biblioteca compartida.so en Ubuntu 32 bits (He intentado hacerlo en Debian y Ubuntu 64 bits, pero ninguno trabajó tampoco)
Sigo recibiendo /usr/lib/libstdc++.so.6: version ``GLIBCXX_3.4.15' not found
cada vez que intento cargar mi plugin.
Aquí'es cómo estoy recibiendo este error:
Aquí hay algunos enlaces que encontré y probé, pero ninguno me funcionó:
(Mi vieja pregunta: De alguna manera lo arreglé unos días después de publicar esta pregunta, pero no puedo recordar cómo lo hice exactamente)
Otro usuario con el mismo problema
Veo que algunas personas lo arreglaron moviendo libstdc++(creo) a algún directorio y luego apuntando o enlazando no sé qué a ese directorio, pero eso me dejó perplejo.
¿Alguien sabe cómo solucionarlo?
(Edit:)
strings /usr/lib/libstdc++.so.6 | grep GLIBC
en el terminal me da: strings '/usr/lib/libstdc++.so.6': No such file
. ¿Podría ser ese el problema? Y si es así, ¿cómo puedo instalar esta biblioteca?(Edit2:) ¿Alguien más conoce una solución?
(Edit3) Todavía en la necesidad de una solución. ¿hay una manera de ver en qué distro una biblioteca compartida fue compilado en? ¡Sé que una vez compilé esta misma biblioteca hace un tiempo, pero no puedo recordar!
(Edit4) ldd mi_lib_.so
me da:
linux-gate.so.1 => (0xb77d7000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb76c1000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb76a4000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb74fa000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb74ce000)
/lib/ld-linux.so.2 (0xb77d8000)
ldd program_im_loading_so_into
me da:
linux-gate.so.1 => (0xb77d8000)
libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb77c0000)
libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb77a5000)
libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb76bb000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb768f000)
libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7672000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb74c9000)
/lib/ld-linux.so.2 (0xb77d9000)
ejecutando strings /usr/lib/i386-linux-gnu/libstdc++.so.6 | grep GLIBCXX
me da:
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH
y finalmente aquí'está mi versión de gcc:
`gcc version 4.6.4 (Ubuntu/Linaro 4.6.4-1ubuntu1~12.04)`
Arriba, usted menciona tener la compilación de su como parte de sus pasos para reproducir, pero luego por debajo de usted hizo una edición diciendo,
"¿Hay una manera de ver en qué distro una biblioteca compartida fue compilado en?"
Si compiló o no en la misma distro, e incluso en una versión diferente de la misma distro es un detalle importante, especialmente para aplicaciones c++.
Vinculación a las bibliotecas de c ++, incluyendo libstdc ++ puede tener resultados mixtos, por lo que puedo decir. Aquí hay una pregunta relacionada sobre la recompilación con diferentes versiones de c++.
https://stackoverflow.com/questions/9408656/do-we-need-to-recompile-libraries-with-c11
Básicamente, si usted compiló contra c++ en una distro diferente (y posiblemente diferente versión de gcc), esto puede estar causando su problema.
Creo que tienes dos opciones: