[c] gcc 명령 줄을 사용하여 .c 파일에서 .so 파일 작성

Linux 동적 라이브러리 (.so 파일)를위한 hello world 프로젝트를 만들려고합니다. 그래서 hello.c 파일이 있습니다 :

#include <stdio.h>
void hello()
{
    printf("Hello world!\n");
}

hello()명령 줄에서 gcc를 사용하여 내보내는 .so 파일을 어떻게 만듭니 까?



답변

공유 라이브러리를 생성하려면 먼저 -fPIC(위치 독립적 코드) 플래그 를 사용하여 C 코드를 컴파일해야합니다 .

gcc -c -fPIC hello.c -o hello.o

그러면 객체 파일 (.o)이 생성됩니다. 이제 가져 와서 .so 파일을 만듭니다.

gcc hello.o -shared -o libhello.so

편집 : 의견에서 제안 :

당신이 사용할 수있는

gcc -shared -o libhello.so -fPIC hello.c

한 번에 할 수 있습니다. – Jonathan Leffler

또한 -Wall모든 경고 -g를 받고 gcc명령에 디버깅 정보를 얻기 위해 추가 하는 것이 좋습니다 . – 바 실레 스타 인케 치


답변