Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

17.4. GCC 및 ar를 사용하여 정적 library 생성

정적 링크를 위한 라이브러리를 생성할 수 있는 경우 오브젝트 파일을 특수 유형의 아카이브 파일로 변환할 수 있습니다.

참고

Red Hat은 보안상의 이유로 정적 링크 사용을 권장하지 않습니다. 특히 Red Hat에서 제공하는 라이브러리에 대해 필요할 때만 정적 링크를 사용합니다. 16.2절. “정적 및 동적 연결”을 참조하십시오.

사전 요구 사항

절차

  1. GCC를 사용하여 중간 개체 파일을 만듭니다.

    $ gcc -c source_file.c ...

    필요한 경우 소스 파일을 더 추가합니다. 결과 오브젝트 파일은 파일 이름을 공유하지만 .o 파일 이름 확장자를 사용합니다.

  2. binutils 패키지의 ar 툴을 사용하여 오브젝트 파일을 정적 라이브러리(아카이브)로 전환합니다.

    $ ar rcs libfoo.a source_file.o ...

    libfoo.a 파일이 생성됩니다.

  3. nm 명령을 사용하여 결과 아카이브를 검사합니다.

    $ nm libfoo.a
  4. 정적 라이브러리 파일을 적절한 디렉터리에 복사합니다.
  5. 라이브러리를 연결할 때 GCC는 라이브러리가 정적 연결을 위한 아카이브인 .a 파일 이름 확장자에서 자동으로 인식됩니다.

    $ gcc ... -lfoo ...

추가 리소스

  • ar 툴을 위한 Linux 도움말 페이지:

    $ man ar