Escribí un pequeño programa que requiere algunas bibliotecas como libboost_filesystem, libboost_program_options y libcurl.El programa compilado de C++ plantea "no se puede abrir el archivo de objeto compartido" en otro sistema aunque el archivo está presente
Lo compilé en la máquina de mi casa y tomé el binario de mi computadora en el trabajo para probarlo allí. Pero no da la siguiente mensaje de error cuando trato de iniciar el programa:
error while loading shared libraries:
libboost_filesystem.so.1.42.0: cannot
open shared object file
Pero cuando la búsqueda de este archivo veo que existe en: /usr/lib/libboost_filesystem.so.1.42.0
¿Hice algo mal durante la compilación/vinculación de mi programa? En caso afirmativo, ¿qué debo hacer para que funcione en otras máquinas?
A menudo me parece que 'ldd' puede ayudarme a descubrir cuál es el problema. ¿Qué dice 'ldd./Your_executable'? –
Por lo que ha dicho, parece que debería estar funcionando. Puede haber un conflicto de 32 bits frente a 64 bits. Intenta ejecutar 'file./Your_executable' y' file/usr/lib/libboost_filesystem.so.1.42.0' para verificar que las arquitecturas coincidan :) –
wow tienes razón. el programa está construido como 32 bits y la biblioteca presente es 64bit – tyrondis