Есть ли эквивалент опции GNU link -just-symbols для не-GNU-линкеров?

-R имя_файла

- всего-символы = имя_файла

Прочитайте имена символов и их адреса из имени файла, но не переместите его или не включите в вывод. Это позволяет вашему выходному файлу символически обращаться к абсолютным местоположениям памяти, определенным в других программах. Вы можете использовать эту опцию более одного раза.

Например, на моем Mac ld -R libsomething.a или даже gcc -Wl,-R,libsomething.a не работает.

Ответы

Ответ 1

Поскольку вы говорите о "своем mac", я предполагаю, что мы говорим об операционных системах OS X.

В системах на базе UNIX большую часть времени используется компоновщик ld "(с опцией -R) (см. также: ELF). В отличие от OS X Systems используйте Mach-O двоичный формат и инструмент dyld для связи. OS X не предоставляет те же функции для библиотек, что и в UNIX. Попробуйте otool -L в двоичном формате, чтобы увидеть, где ожидаются библиотеки. Вы также можете попробовать установить DYLD_LIBRARY_PATH (man dyld) для ваших двоичных файлов, но помните о безопасности (это можно использовать для ввода кода типа LD_LIBRARY_PATH в UNIX-системах).