简短的问题
我尝试使用gcc -m32 -c file.c -o file.o -Llib -llibname
命令将我的 32 位共享库(.so
文件)链接到 32 位可执行文件。但似乎没有添加库。
长问题
我制作了 32 位内核,现在,我为我的内核制作了一个库,并且我想将我的库链接到我的内核。
我尝试使用gcc -m32 -nostdlib -nostdinc -fno-builtin -c kernel/kernel.c -o kernel/kernel.o -Llib -lkernel
命令。但似乎没有添加库。
(kernel/kernel.c
是我的内核 C 文件,也是lib/libkernel.so
我的库.so
文件。我.so
使用命令创建了我的文件gcc -m32 -nostdlib -nostdinc -fno-builtin -fPIC -shared lib/libkernel/printf.c -o lib/libkernel.so
。)
答案1
我们必须创建静态库(例如ar rcs libname.a lib.o
)并链接它(例如ld -melf_i386 -Llib -lname
)。