짧은 질문
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
).