gcc linker найти ссылку на функцию - PullRequest
0 голосов
/ 23 октября 2010

Я знал, что компоновщик gcc всегда ищет внешнюю функцию в последующих файлах obj или lib.Есть ли способ сообщить компоновщику, ищущему ссылку во всем файле obj или lib, если компоновщик не нашел в последующем obj.

для рассмотрения,

ld a.obj b.obj c.obj

, если компоновщик не нашел функцию x в a.obj, он изучит b.obj или c.obj.

если компоновщик не нашел функцию xx в b.obj, он будет смотреть в c.obj.и если функция xx находится в a.obj, компоновщик не будет жаловаться на ссылку на xx.как решить эту проблему.

Спасибо

Ответы [ 2 ]

1 голос
/ 23 октября 2010

@ ответ Мэтью может помочь решить вашу начальную проблему (с потенциально значительными потерями производительности), но если ваши объектные файлы зависят от порядка, похоже, у вас проблемы с неортогональным дизайном.

1 голос
/ 23 октября 2010

Не самый ясный из вопросов, но, возможно, вы ищете варианты -( ... -) (или --start-group ... --end-group) для ld (как описано в man ld или ld документация онлайн )?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...