C++ TIPS

Static Link Library 직접 만들고 링크해보기

2022. 10. 28. 02:58
목차
  1. 1. 라이브러리용 프로젝트 만들기
  2. 2. 정적 라이브러리 빌드하기
  3.  
  4. 3. 정적 라이브러리 연결용 프로젝트 만들기
  5. 4. 특징

이글에선 초보도 일단 해볼수 있도록 간단한 사용 방법만 설명.

원리는 구글링하면 설명 잘해주는글 수두룩하므로 그걸 볼것.

 

—이론—

  • 정적 링크 라이브러리는 컴파일 시 코드가 연결된 프로그램에 합쳐진다.
    • 소스코드 + (라이브러리 헤더 파일) + lib → exe
  • 동적 링크 라이브러리는 컴파일 시 연결된 프로그램에 합쳐지지 않는다.→ dll과 연결된 함수 주소만 프로그램에 합쳐놓고, 자세한 내용은 dll에서 참조해서 사용하는 방식
    • 쉽게 생각해서 주소록만 등록시켜놓고 사용하는 방식이라고 보면 될것 같다.
    • 소스코드 + (라이브러리 헤더 파일) + lib → exe + dll

 

 

—실전—

 

1. 라이브러리용 프로젝트 만들기

 

1. 빈 프로젝트 하나 생성

 

 

2. 이렇게 헤더와 소스파일을 각각 하나씩 만들어준다.

 

 

3. 헤더 파일에 원하는 함수를 선언해준다. 간단하게 곱하기, 더하기 함수 2개만 선언할 것이다.

int LIBAdd(int a, int b);
int LIBMul(int a, int b);



4. library.cpp로 이동해서 헤더파일을 포함시킨다.

#include "library.h"

 

 

5. 위에서 만든 함수 2개를 정의한다.

int Add(int a, int b)
{
	return a + b;
}

int Mul(int a, int b)
{
	return a * b;
}

 

 

6. 이제 빌드해서 라이브러리 파일을 만들어주면 된다.

 

 

 

 

 


 

 

 

 

 

2. 정적 라이브러리 빌드하기

1. 프로젝트 - 속성에 들어간다.

 

 

 

2. 4개만 설정해주면 된다.

모든 구성으로 설정

출력 디렉터리의 끝에 Lib\ 붙여줌

중간 디렉터리의 끝에 Obj\ 붙여줌

구성 형식을 정적라이브러리(.lib)로 바꿔줌 ← 이게 핵심

 

💡 1~3번은 뭔 설정인지 알면 알아서 적절히 해주면 됩니다

 

설정 다했으면 빠져나와 주고

 

 

 

 

3. Debug, Release 상관없이 x64로 바꿔주고 (마찬가지로 뭔 설정인지 알면 알아서 할것)

 

 

4. Ctrl + B 눌러서 빌드해 준다.

 

5. 그럼 프로젝트 폴더에 x64라는 폴더가 생성된다. Debug/Lib 폴더 안으로 들어가 보면 라이브러리가 만들어져 있다.

 

6. 바탕화면 같은데에다 폴더 하나 만들고 .lib와 .pdb 2개 파일만 복사해서 가져온다.

 

7. 그리고 프로젝트 폴더에서 library.h (아까 2-1에서 만들었던 거) 를 가져온다.

 

8. 라이브러리는 준비 끝

 

 

 


 

3. 정적 라이브러리 연결용 프로젝트 만들기

1. 라이브러리 테스트용 프로젝트를 하나 생성한다.

 

 

 

2. "Hello World" 를 출력하는 프로그램까지만 만들어준다.

 

 

3. 이 프로젝트 폴더에 2번에서 복사해놓은 파일 3개를 붙여넣어준다.

 

 

4. 됐으면 편집 창으로 돌아와서 소스파일 우클릭 - 추가 - 기존항목 선택 후 복사한 파일중 library.h 파일을 추가해준다.

 

이렇게

 

 

5. 그리고 main.cpp에 다음 코드를 추가한다.

#pragma comment(lib, "Library_Exercise.lib")
#include "Library.h"
  • 위쪽 코드는 라이브러리 파일 위치를 알려주는 코드이고,
  • 아래쪽 코드는 라이브러리 안의 함수가 뭐가 있는지를 알려주는 코드를 main.cpp에 포함시킨 것이다.

 

 

 

 

6. 그리고 아까 만들었던 함수를 main 함수 안에서 불러 보면 놀랍게도 빨간줄이 안 나오고 불러진다.

int main()
{
	
	int a = LIBAdd(2, 3);

	int b = LIBMul(2, 3);

	printf("2 + 3 = %d\n", a);
	printf("2 * 3 = %d\n", b);

	system("pause");
	
	return 0;
}

 

 

 

7. 그럼 이제 F5를 눌러서 실행시켜보자.

신기하게도 작동한다.

 

 


 

 

 

4. 특징

정적 라이브러리는 라이브러리 내부의 코드가 전부 프로그램에 합쳐진다.

궁금하면 직접 해보자. 

프로젝트 폴더 안쪽에 들어가보면 .exe 파일이 있다.

 

 

 

 

이걸 따로 폴더 만들어서 거기에 옮긴 뒤 실행시켜보자.

 

 

 

-> 따로 떼 놔도 아주 잘 작동하는것을 볼수 있다.

Static_Link_Library.zip
0.02MB

저작자표시 (새창열림)

'C++ TIPS' 카테고리의 다른 글

'빌드 후 이벤트'로 헤더파일을 복사할 때 읽기 전용으로 복사하기.  (0) 2023.02.11
Dynamic Link Library 직접 만들고 링크해보기  (1) 2022.10.28
Visual Studio 컴파일 속도 올리기  (1) 2022.09.22
실수로 인해 빌드될 때 취소하는 법  (0) 2022.05.30
함수의 const  (0) 2022.04.18
  1. 1. 라이브러리용 프로젝트 만들기
  2. 2. 정적 라이브러리 빌드하기
  3.  
  4. 3. 정적 라이브러리 연결용 프로젝트 만들기
  5. 4. 특징
'C++ TIPS' 카테고리의 다른 글
  • '빌드 후 이벤트'로 헤더파일을 복사할 때 읽기 전용으로 복사하기.
  • Dynamic Link Library 직접 만들고 링크해보기
  • Visual Studio 컴파일 속도 올리기
  • 실수로 인해 빌드될 때 취소하는 법
hyrule
hyrule
hyrule
C++ 프로그래밍 공부
hyrule
전체
오늘
어제
  • 분류 전체보기 (205)
    • C++기초 (50)
    • WIN32API FrameWork (109)
      • 한단계씩 직접 구현 (82)
      • 원본 (15)
      • 코드별 설명 개별저장(검색용) (12)
    • 자습 (21)
    • C++ TIPS (11)
    • 연습 노트 (3)
    • ETC (6)
    • DX2D StarCraft 모작 (1)

블로그 메뉴

  • 홈
  • 방명록

공지사항

인기 글

태그

  • notion
  • Tistory
  • Windows 11
  • 스타크래프트
  • C++
  • hello

최근 댓글

최근 글

hELLO · Designed By 정상우.
hyrule
Static Link Library 직접 만들고 링크해보기
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.