16.4. GCC에서 정적 라이브러리 사용


정적 라이브러리는 오브젝트 파일을 포함하는 아카이브로 사용할 수 있습니다. 연결한 후 결과 실행 파일의 일부가 됩니다.

참고

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

사전 요구 사항

참고

Red Hat Enterprise Linux의 일부인 대부분의 라이브러리는 동적 연결에만 지원됩니다. 아래 단계는 동적 연결에 사용할 수 없는 라이브러리에서만 작동합니다. 16.6절. “GCC에서 정적 및 동적 library 사용”을 참조하십시오.

절차

소스 및 개체 파일의 프로그램을 연결하려면 정적으로 링크된 라이브러리 foo 를 추가합니다. libfoo.a:

  1. 코드가 포함된 디렉터리로 변경합니다.
  2. foo 라이브러리의 헤더를 사용하여 프로그램 소스 파일을 컴파일합니다.

    $ gcc ... -Iheader_path -c ...

    header_pathfoo 라이브러리의 헤더 파일이 포함된 디렉터리의 경로로 바꿉니다.

  3. foo 라이브러리와 프로그램을 연결합니다.

    $ gcc ... -Llibrary_path -lfoo ...

    library_pathlibfoo.a 파일이 포함된 디렉터리의 경로로 바꿉니다.

  4. 프로그램을 실행하려면 다음을 실행합니다.

    $ ./program
경고

정적 링크와 관련된 -static GCC 옵션은 모든 동적 연결을 금지합니다. 대신 -Wl,-Bstatic-Wl,-Bdynamic 옵션을 사용하여 링커 동작을 보다 정확하게 제어합니다. 16.6절. “GCC에서 정적 및 동적 library 사용”을 참조하십시오.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.