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
명령에 디버깅 정보를 얻기 위해 추가 하는 것이 좋습니다 . – 바 실레 스타 인케 치