2016-11-26 7 views
0

Я недавно начал использовать a new ELF loader. Загрузчик требует, чтобы вы связывали свои приложения с ld -r.Используйте `ld -r` и получите ошибки компиляции, если символы отсутствуют

Проблема в том, что GCC больше не предупреждает меня о неопределенных функциях, а затем загрузчик (очевидно) не находит их.

Как связать с ld -r и получить метод неопределенных символов.

Я использую ld -r для целей переселения, поэтому для меня также будет работать другой способ включения переездов.

+0

Я думаю, вы могли бы выполнить одну фазу связи без символа -r, во временный неиспользуемый файл .elf, и если ему удастся перейти к реальному. –

+0

@ Jean-FrançoisFabre, значит, вы имеете в виду ссылку дважды? Думаю, я мог бы это сделать. –

+0

если это не займет слишком много времени. Кроме того, мне понадобится [mcve], чтобы попытаться сделать это за один проход. –

ответ

1

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

Если эта фаза завершается успешно, перейдите к реальной ссылке с опцией -r.

+0

Благодарим за помощь. –