Shared-Library

如何將 32 位共享庫(.so 文件)連結到 32 位執行檔?

  • April 16, 2021

簡短的問題

我嘗試使用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命令創建了我的文件。)

我們必須創建靜態庫(例如ar rcs libname.a lib.o)並連結它(例如ld -melf_i386 -Llib -lname)。

引用自:https://unix.stackexchange.com/questions/645111