链接时无法链接查找库

时间:2018-12-27 20:19:43

标签: gcc linker

当我使用gcc链接.ld文件时,出现以下错误

/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-multiboot MoraWing.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 :(得分:0)

您需要安装function checker(charCodes, text) { return text.split().some(char => charCodes.indexOf(char.charCodeAt(0)) > -1); } textareaNode.addEventListener('input', event => { if(checker([101,105], event.target.value)){ // char code exists } }) 或适用于您系统的类似软件包(还应指定系统 )。