(Win32 : WindowsProgramming-11) Static Library

Posted by : at

Category : win32   WindowsProgramming


명령 프롬프트를 통해 Static Library 만들기

// add.c
int add(int a, int b)
{
    return a + b;
}
# 빌드
$ cl add.c /c
# 컴파일만 하기에 object(.obj)파일만 생성됨
// sub.c
int sub(int a, int b)
{
    return a - b;
}
# 빌드
$ cl sub.c /c

add.obj, sub.obj 파일을 하나로 묶어서 배포하고 싶다 -> 정적라이브러리(.lib)

# 라이브러리 만들기
$ lib add.obj sub.obj /out:mystaticmanual.lib

IDE에서 Static Library 만들기

프로젝트 속성 -> 일반 -> 구성 형식 -> 정적라이브러리 로 설정


Static Library 배포

  • 헤더파일을 포함해서 배포한다.
// mymath.h
#pragma once

#ifdef __cplusplus
extern "C" {
#endif

    int add(int a, int b);
    int sub(int a, int b);

#ifdef __cplusplus
}
#endif

정적 라이브러리 사용하기

// main.cpp
#include <stdio.h>
#include "mymath.h"

int main()
{
    int ret = add(1, 2);
    printf("result : %d\n", ret);
}
$ cl main.cpp /c
$ link main.obj mystaticmanual.lib
# 더 간단하게는 
$ cl main.c /link mystaticmanual.lib
# or
$ cl main.c mystaticmanual.lib

코드에 라이브러리 추가는

// main.cpp
#include <stdio.h>
#include "mymath.h"

#pragma comment(lib, "mystaticmanual.lib")

int main()
{
    int ret = add(1, 2);
    printf("result : %d\n", ret);
}

About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links