[C++ DLL] ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ดํด
์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋?
์ฝ๋ฉ์ ํ๋ค ๋ณด๋ฉด ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ฌ์ฉ์ ๊ฑฐ์ ํ์์
๋๋ค. ํ๋๋ถํฐ ์ด๊น์ง ์ผ์ผ์ด ๋ง๋ค์ด์ ํ๋ก๊ทธ๋จ์ ์ ์ํ๊ธฐ๋ ์ฝ์ง๊ฐ ์๊ธฐ ๋๋ฌธ์ด์ฃ . ์๋ฅผ ๋ค์ด, ํ๋ก๊ทธ๋จ์ ๋์์ ํ์ผ๋ก ๊ธฐ๋กํด์ผ ํ๋ค๋ฉด Logging
๊ด๋ จ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํ ๊ฒ์
๋๋ค. ์คํ ์์ค๋ก ์ ๋ช
ํ ๊ฒ์ Log4cpp
๋ spdlog
, easylogging
๊ฐ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ฐ์. ์ด๋ฏธ ๋ง์ ์ฌ๋๋ค์ด ์ค๋์ ๋ถํฐ ๋ง๋ค์ด ์์ผ๋ฉฐ ๋ง์ ๋ฌธ์ ๋ค์ ํด๊ฒฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์
๋๋ค. ๊ทธ๋ฐ๋ฐ, ์ด๋ ๊ฒ ์ข์ ๋ฌด๋ฃ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋๊ณ ๋ณธ์ธ์ ๊ฒ์ผ๋ก ์ฒ์๋ถํฐ ๋ง๋ค ๊ฒ์ธ๊ฐ์? ๊ทธ๋ ๋ค๋ฉด ์์ ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ์ด๋ ์ธ์์ ํ๋ณดํ๊ณ , ๋จ์์๋ ๋ค๋ฅธ ์๋ง์ ๋ชจ๋๋ค์ ์ธ์ ๋ง๋ค๊น์?
๋ฐ๋ผ์ ํน์ํ ์ํฉ์ด ์๋ ์ด์, ์ด๋ฏธ ์์ ์ฑ์ด ํ๋ณด๋ ๋๋ ๊ฒ์ฆ๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ์ ํ ์ฌ์ฉํ๋ ๊ฒ์ด ํ๋ช ํ ๊ฒ์ ๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ
Visual Studio์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์์ฑํ๋ ํ๋ก์ ํธ๋ก ๋์ ์ฐ๊ฒฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Dynamic Link Library)
๋ฐ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Static Link Library)
๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋์ ์ฐ๊ฒฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ๋ก์ ํธ๋ก ์์ฑ๋๋ ํ์ผ์ *.dll
, *.lib
๊ทธ๋ฆฌ๊ณ *.h
์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ๋ก์ ํธ๋ก ์์ฑ๋๋ ํ์ผ์ *.lib
๋ฐ *.h
์
๋๋ค. ๊ฐํน, ์คํ ์์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ CMake
๋ก ์ง์ ๋น๋๊ฐ ํ์ํ ๊ฒฝ์ฐ, ๋์ ๋๋ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑ์ ์ ํํ ์ ์์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐ๊ฒฐ ๋ฐฉ์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ฉ์ธ ํ๋ก์ ํธ์์ ์ฌ์ฉํ๊ธฐ ์ํ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋ช ์์ ๋งํน(Explicit Linking)
- ๋ฐํ์(Runtime) ์ค ํ์ํ ๋ DLL ๋ก๋ฉ ๋ฐ ํจ์ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฐํ์ ์ค ์ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์, ํ๋ก๊ทธ๋จ ์คํ ์๋๊ฐ ๋จ์ถ๋๋ค.
- ์์ค ์ฝ๋ ๋ณ๊ฒฝ ์, ์๋ก์ด DLL๋ง ๋ฐฐํฌํ๋ฉด ๋ฉ์ธ ํ๋ก์ ํธ์ Recompile์ด ํ์ ์๋ค.
์์์ ๋งํน(Implicit Linking)
์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํธ์ถ๋ ํจ์๊ฐ ์คํ ํ์ผ(*.exe)์ ํฌํจ๋๋ค.
- ํ๋ก๊ทธ๋จ ์คํ ํ์ผ(*.exe)๋ง ์์ผ๋ฉด ์คํ ๊ฐ๋ฅํ๋ค.
- ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์๋ค.
๋ญ๊ฐ ๋ ์ข๋ค๊ธฐ ๋ณด๋ค๋, ๊ฐ๋ฐ์ ์ ํ์ ๋ฐ๋ผ ์ด๋ค ๋ฐฉ์์ ์ฌ์ฉํ ์ง ๊ณ ๋ฅด๋ฉด ๋๋ ๊ฒ์ ๋๋ค. ์ถํ DLL ์์ฑ ๋ฐ ๊ฐ๊ฐ์ ๋ฐฉ์์ ๋ฐ๋ผ ํ๋ก์ ํธ์ ์ฐ๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ์๊ฐํ๊ฒ ์ต๋๋ค.
'Programming > C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[C++ DLL] Visual Studio C++ ๋ช ์์ ๋งํฌํ๊ธฐ (์์ ํฌํจ)
[C++ DLL] Visual Studio C++ ๋ช ์์ ๋งํฌํ๊ธฐ (์์ ํฌํจ)
2020.12.10 -
[C++ DLL] Visual Studio C++ ์์์ ๋งํฌํ๊ธฐ (์์ ํฌํจ)
[C++ DLL] Visual Studio C++ ์์์ ๋งํฌํ๊ธฐ (์์ ํฌํจ)
2020.12.07 -
[C++ DLL] Visual Studio C++ DLL ์์ฑํ๊ธฐ (์์ ํฌํจ)
[C++ DLL] Visual Studio C++ DLL ์์ฑํ๊ธฐ (์์ ํฌํจ)
2020.12.04 -
[C++] ํ๋ฌ๊ทธ์ธ ๊ตฌ์กฐ๋ก ํ๋ก๊ทธ๋จ ํ์ฅํ๊ธฐ (์์ ํฌํจ)
[C++] ํ๋ฌ๊ทธ์ธ ๊ตฌ์กฐ๋ก ํ๋ก๊ทธ๋จ ํ์ฅํ๊ธฐ (์์ ํฌํจ)
2020.10.25