0
libc를 사용하지 않고 Linux에서 공유 오브젝트 파일을 빌드 할 수 있습니까? 나는 -nostdlib을 사용하여 공유 객체를 만들려고했는데 내장 함수 'memset'에 대해 상충되는 유형이 있다고 불평합니다 (빌드하려고하는 공유 객체 내에 정의 된 함수의 자체 버전이 있습니다).libc없이 공유 오브젝트 폴더 컴파일
공유 오브젝트 파일 내에서 libc 기능을 사용하지 않습니다. 다음과 같이 내가 공유 객체를 구축하고있다 : - 당신이 -nostdlib
와 연결하면, 당신은 또한뿐만 아니라 -ffreestanding
및/또는 -fno-builtin
컴파일해야
CC = gcc
CFLAGS = -Wall -Wextra -Werror -nostdlib
OUTPUTDIR = ./build
test: outputdir
$(CC) $(CFLAGS) -c -fPIC test.c -o ${OUTPUTDIR}/test.o
$(CC) $(CFLAGS) ${OUTPUTDIR}/test.o -shared -o ${OUTPUTDIR}/libtest.so
outputdir:
mkdir -p ${OUTPUTDIR}
clean:
rm -rf ${OUTPUTDIR}
감사합니다. 이로 인해 문제가 해결되었습니다. –