Запуск Debian / Linux x86_64 с GNU ld 2.21.
Очень просто, если я свяжусь с
ld -o main main.o /usr/lib/crti.o /usr/lib/crt1.o /usr/lib/crtn.o -lc -lm
, он работает, но когда я свяжусь с
ld -r -o main1.o main.o /usr/lib/crti.o /usr/lib/crt1.o /usr/lib/crtn.o -lc -lm
, он жалуется
ld: cannot find -lc
ld: cannot find -lm
На самом деле я не пытаюсь скомпилировать код таким образом, я скорее пытаюсь выяснить, почему чужой тест на наличие библиотеки не работает. (Таким образом, я действительно не понимаю, что происходит с ld
... обычно я просто использую GCC для ссылки)
Зачем сообщать ld
ссылку в перемещаемом режиме make он вдруг не может найти библиотеки? Если я просто хочу проверить, существует ли -lm
, что мне делать помимо
ld -r -lm
, чтобы он нашел библиотеку?
Если вы хотите увидеть источник, с которым я имею дело, вы можете скачать его здесь: https://github.com/jeremysalwen/ESPS (обратите внимание, что первая фиксация - это исходный исходный код, а последующие изменения - это изменения, внесенные мной лично)