Tengo un "CeeloPartyServer" binario que necesita encontrar libFoundation.so en tiempo de ejecución, en una máquina FreeBSD. Ambos están en el mismo directorio. Compilo (en otra plataforma, usando un compilador cruzado) CeeloPartyServer usando el indicador del enlazador "-rpath = $ ORIGIN".
> readelf -d CeeloPartyServer |grep -i rpath 0x0000000f (RPATH) Library rpath: [$ORIGIN] > ls CeeloPartyServer Contents Foundation.framework libFoundation.so > ./CeeloPartyServer /libexec/ld-elf.so.1: Shared object "libFoundation.so" not found, required by "CeeloPartyServer"
Por qué no está encontrando la biblioteca cuando intento ejecutarlo? Mi línea de enlazador exacta es: -lm -lmysql -rpath = $ ORIGIN. Estoy bastante seguro de que no tengo que escapar \ u0026quot; ni nada de eso ya que mi análisis readelf de hecho muestra que la biblioteca rpath está configurada en $ ORIGEN. ¿Qué me estoy perdiendo?
Todos sus suposiciones son correctas. No estoy usando la bandera de origen -z, nunca vi eso documentado en ninguna parte. Te dejaré saber si eso lo resuelve. – Nektarios