티스토리 뷰

공부/C++

동적 라이브러리

굥굔 2022. 3. 27. 17:08

동적 라이브러리란?

라이브러리 개념이지만 정적라이브러리와는 다르게 dll 과 lib 두개의 파일이 있다. 

실제 코드는 dll 안에 들어있지만 프로젝트 안에서 참조는 lib를 해야한다. lib 에는 dll을 참조하는 내용이 들어있을 뿐이다. 반대로 정적 라이브러리의 lib에는 실제 코드가 들어있다!

(가끔 게임이든 뭐든 돌리다 보면 해당 dll이 없습니다! 가 나오면 이제 뭐가 문제인지 알겠지?)

근데 .exe 파일 (실행파일) 옆에는 dll 파일이 같이 있어야 한다네?

 

아무튼 이런 복잡한 개념으로 이루어져 있다.

코드까지 캡쳐해서 공부할건 아니라 다음 이야기로 넘어가보겠음. 

dll은 개발자들은 dllexport 로 코드를 만들어야 한다. 다만 사용자들은 dllexport로는 다운로드한 dll을 사용하지 못한다. 당연하게도 dllimport로 코드를 바꿔줘야 사용자들은 dll을 사용할 수 있을 것이다. ->그래서 자동으로 잡아주는 ifdef를 사용한다고 한다. (그냥 원리만 알고 넘어가자) 

 

dll의 묵시적인 링킹, 암시적인 링킹은 무엇일까? 동적 라이브러리는 프로젝트가 실행될 때에도 링크를  연결/해제가 가능하다고 우리는 알고 있다. 하지만 묵시적/암시적 링킹은 그냥 사용할 dll을 프로젝트 시작부분에 죄다 참조하는 것이다. 중간에 추가적으로 연결할 일이 없도록 말이다. 왜? 편하니까... 

 

동적 라이브러리의 실시간 연결은 다루지 않겠다. 지금 정적 라이브러리도 복습하고 엔진 개발까지 가는길이 구만리임

'공부 > C++' 카테고리의 다른 글

[C++] 메모리 풀 2  (0) 2023.03.30
[C++] 메모리 풀 1  (0) 2023.03.30
C++ 복습) 상속  (0) 2021.11.24
C++ 복습) const와 레퍼런스(&)  (0) 2021.11.23
C++ 복습) 포인터  (0) 2021.11.23
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함