2010-12-20 9 views
14

-R nombre¿Existe un equivalente a la opción del enlazador GNU "--just-symbols" para los enlazadores que no sean GNU?

--sólo-symbols = nombre del archivo

nombres Símbolo de lectura y sus direcciones de nombre del archivo, pero no cambia su posición o incluirlo en la salida. Esto permite que su archivo de salida se refiera simbólicamente a las ubicaciones absolutas de la memoria definidas en otros programas. Puede usar esta opción más de una vez.

Por ejemplo, en mi Mac, ld -R libsomething.a o incluso gcc -Wl,-R,libsomething.a no funciona.

+1

¿cuál es el mensaje de error? –

+9

Seguramente la respuesta dependerá del enlazador que no sea GNU que use, ya que los args son procesados ​​por el enlazador específico invocado. –

+1

¿Qué mensaje de error está recibiendo? también qué enlazador y versión estás usando? – Unsigned

Respuesta

2

Como estás hablando de "tu mac", supongo que estamos hablando de los sistemas operativos OS X.

En sistemas basados ​​en UNIX, el enlazador "ld" (con la opción -R) se usa la mayoría de las veces (véase también: ELF). En contraste, los sistemas OS X usan el formato binario Mach-O y la herramienta dyld para vincular. OS X no proporciona las mismas características para las bibliotecas que UNIX. Pruebe otool -L en un binario para ver dónde se esperan las bibliotecas. Es posible que también desee probar la configuración DYLD_LIBRARY_PATH (man dyld) para sus binarios, pero tenga en cuenta el riesgo de seguridad (esto podría usarse para inyectar código como LD_LIBRARY_PATH en sistemas UNIX).

Cuestiones relacionadas