콘텐츠로 건너뛰기

정적 라이브러리 명명 규칙

일반적으로 솔루션 빌드할 때, 정적 라이브러리도 솔루션에 포함하여 빌드하기 때문에 문제없이 사용할 수 있습니다. 하지만 외부에서 만들어진 정적 라이브러리를 솔루션에 링크할 경우, 현재 솔루션의 빌드 환경과 정적 라이브러리의 빌드 환경이 다를 수 있어 링크 오류가 발생할 수 있습니다. 이러한 문제는 빌드가 제대로 되지 않는 주요 원인이 될 수 있습니다.

이를 방지하기 위해, 정적 라이브러리를 생성할 때 컴파일러 버전, 빌드 환경 등의 정보를 파일 이름에 포함시켜 명명 규칙을 정하는 것이 좋습니다. 이를 통해 개발 환경에 맞는 정적 라이브러리를 쉽게 식별하고 사용할 수 있습니다.

정적 라이브러리 명명 규칙

제가 주로 사용하는 정적 라이브러리 명명 규칙은 다음과 같습니다.
예시로 StudioYS라는 프로젝트 이름을 사용하겠습니다.

PlatformRumtime LibraryMSVCBuild ConfigurationOutput
x86MDVisual Studio 2019ReleaselibStudioYS_MD_2019_x86.lib
x64MDVisual Studio 2019ReleaselibStudioYS_MD_2019_x64.lib
x86MDVisual Studio 2019DebuglibStudioYS_MD_2019_x86D.lib
x64MDVisual Studio 2019DebuglibStudioYS_MD_2019_x64D.lib
x86MTVisual Studio 2019ReleaselibStudioYS_MT_2019_x86.lib
x64MTVisual Studio 2019ReleaselibStudioYS_MT_2019_x64.lib
x86MTVisual Studio 2019DebuglibStudioYS_MT_2019_x86D.lib
x64MtVisual Studio 2019DebuglibStudioYS_MT_2019_x64D.lib

각 항목 설명

  • libStudioYS :
    라이브러리 이름입니다. 이 부분은 프로젝트나 라이브러리의 이름을 나타냅니다. 여기서는 프로젝트 이름이 StudioYS이므로 libStudioYS로 설정되었습니다.
  • MD/MT :
    런타임 라이브러리 설정을 나타냅니다.
    • MD: 다중 스레드를 사용하는 DLL과 함께 C 런타임 라이브러리를 동적으로 링크하는 경우를 의미합니다. (Multithreaded DLL)
    • MT: 다중 스레드를 사용하는 C 런타임 라이브러리를 정적으로 링크하는 경우를 의미합니다. (Multithreaded static)
  • 2019:
    사용된 컴파일러 버전을 나타냅니다. 이 경우 Visual Studio 2019에서 빌드되었음을 의미합니다. 이는 컴파일러 버전 차이로 인해 발생할 수 있는 호환성 문제를 예방하는 데 도움을 줍니다.
  • x86/x64:
    플랫폼(Platform)을 나타냅니다.
    • x86: 32비트 아키텍처용 라이브러리
    • x64: 64비트 아키텍처용 라이브러리
  • D (옵션):
    빌드 구성(Build Configuration)을 나타냅니다. DDebug 빌드를 나타내며, 디버깅에 필요한 심볼 정보가 포함되어 있음을 의미합니다. 릴리즈 빌드에서는 이 접미사를 생략합니다.

예시

  • libgs_MD_2019_x86.lib:
    32비트 플랫폼(x86)에서 Visual Studio 2019를 사용해 다중 스레드 DLL 방식으로 동적 링크된 릴리즈 빌드입니다.
  • libgs_MT_2019_x64D.lib:
    64비트 플랫폼(x64)에서 Visual Studio 2019를 사용해 다중 스레드 정적 링크 방식으로 디버그 빌드된 라이브러리입니다.

이러한 명명 규칙을 따르면, 빌드 환경에 맞는 정적 라이브러리를 쉽게 선택하여 사용할 수 있으며, 빌드 오류나 호환성 문제를 예방할 수 있습니다.

마치며

위 정적라이브러리 명명 규칙은 제가 주로 사용하는 환경에 맞춘 것입니다. 각자 개발 환경에 맞게 명명 규칙을 설정하는 것이 좋습니다. 명명 규칙은 프로젝트와 빌드 환경에 따라 달라질 수 있습니다.

또한, 부스트 라이브러리에서도 명명 규칙을 참고할 수 있습니다. 부스트의 명명 규칙은 다음 링크에서 확인하실 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

목차 보기