피드로 돌아가기
You have been zigged (series) : Linking static library
Dev.toDev.to
Infrastructure

Zig 언어의 export 및 extern 키워드를 활용한 Static Library 링크 구현

You have been zigged (series) : Linking static library

Black Tornado2026년 6월 9일2beginner

Context

모듈화된 코드 재사용을 위해 외부 라이브러리 형태로 기능을 분리하고 이를 메인 실행 파일에 결합하는 빌드 체계 구축 필요. 단일 파일 구성의 한계를 극복하고 컴파일 타임에 의존성을 해결하는 Static Linking 구조 설계 분석.

Technical Solution

  • export 키워드를 사용한 함수 정의로 외부 심볼 노출 및 라이브러리 인터페이스 규격화
  • zig build-lib -O ReleaseSafe 명령어를 통한 최적화된 .a 정적 라이브러리 파일 생성
  • extern 키워드를 활용한 함수 시그니처 선언으로 컴파일러에 외부 함수 존재 알림
  • zig build-exe 빌드 단계에서 메인 소스와 .a 파일을 함께 전달하여 링킹 프로세스 수행
  • 정적 링킹을 통한 런타임 의존성 제거 및 단일 바이너리 배포 구조 확보

- 외부 모듈 노출 시 `pub` 대신 `export` 키워드 적용 여부 확인 - 링크 대상 함수의 시그니처를 `extern`으로 정확히 정의했는지 검토 - 빌드 명령어에 라이브러리 파일 경로를 포함하여 링커에 전달했는지 확인

원문 읽기