Невозможно связать библиотеки поиска при связывании - PullRequest
0 голосов
/ 27 декабря 2018

Когда я связываю файл .ld с помощью gcc, я получаю следующую ошибку

/usr/bin/ld: cannot find -lreadline
collect2: error: ld returned 1 exit status

мои сценарии run.sh содержат следующую команду: rm * .o * .bin * .iso rm -rf isodir

сборка файла boot.s

as --32 boot.s -o boot.o 

связывание ядра с файлами kernel.o и boot.o

gcc  -m32  -lunistd -Wno-unused-result -c kernelCheck.c -o kernel.o -std=gnu99 -ffreestanding -flto -O2 -Wall -Wextra  -L/usr/lib -fno-exceptions 



gcc -m32  -T linker.ld -o MoraWing.bin -ffreestanding -Wl,--build-id=none  -O2 -nostdlib boot.o kernel.o -lgcc

grub-file --is-x86-multibootMoraWing.bin

сборка iso-файла

mkdir -p isodir/boot/grub

cp MoraWing.bin isodir/boot/MoraWing.bin

cp grub.cfg isodir/boot/grub/grub.cfg
grub-mkrescue -o MoraWing.iso ./isodir

запустите его в qemu

qemu-system-x86_64 -cdrom MoraWing.iso 

1 Ответ

0 голосов
/ 28 декабря 2018

Вам необходимо установить libreadline-dev или аналогичный пакет, подходящий для вашей системы (вы также должны указать что такое ваша система).

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