본문 바로가기
  • 우당탕탕속의 잔잔함
Programming/Error, Language, Environments

[DLL] DLL 의존성 확인 및 필요 Pacakage 설치 방법

by zpstls 2023. 1. 5.
반응형

 

 

이번 포스트에서는 개발한 프로젝트를 다른 PC에 적용하는 과정에서 발생될 수도 있는 DLL 관련 Error 해결 방안에 대해 다뤄보도록 하겠습니다.

 

프로그램을 열심히 개발한 후에 빌드까지 수행하고 생성된 산출물들을 다른 PC에서 실행시키려고 할 때 갑자기 ""DLL을 찾을 수 없습니다."라고 Error가 발생되면 '아차' 싶습니다. 필요한 DLL을 다 넣어는데도 그러면 정말 짜증 나고요.

 

DLL을 사용할 경우, 사용하는 PC에 따라 DLL이 필요로 하는 Package가 설치되어 있지 않을 수도 있습니다. 따라서 사용하고자 하는 DLL의 의존 Package를 검사하고 해당 부분을 설치하는 과정에 대해 다뤄보도록 하겠습니다.

 

여러 가지 방법이 있겠지만, Dependency Walker 또는 Dependencies 프로그램을 통해 DLL 의존성을 확인할 수 있습니다.

각 프로그램의 다운로드 링크는 다음과 같습니다.

Dependency Walker Link : http://www.dependencywalker.com

 

Dependency Walker (depends.exe) Home Page

Dependency Walker is a free utility that scans any 32-bit or 64-bit Windows module (exe, dll, ocx, sys, etc.) and builds a hierarchical tree diagram of all dependent modules. For each module found, it lists all the functions that are exported by that modul

www.dependencywalker.com

Dependencies Link : https://github.com/lucasg/Dependencies

 

GitHub - lucasg/Dependencies: A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load

A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues. - GitHub - lucasg/Dependencies: A rewrite of the old legacy softwar...

github.com

 

Dependencies의 경우는 Github Link에서 사용법을 확인할 수 있으니 넘어가고, Dependency Walker를 간단하게 사용해보도록 하겠습니다.

 

Dependency Walker를 통해 DLL 의존성을 확인하기 위해서는 File > Open에서 확인하고자 하는 DLL 또는 EXE 파일을 선택합니다.

Dependency Walker

 

왼쪽 상단에 "?"로 누락된 DLL을 확인할 수 있습니다. 중앙 부분에서는 누락된 상세 Module을 확인할 수 있습니다.

위의 샘플 이미지에서는 opencv_world300.dll이 누락되었다고 하였으므로 opencv 3.0을 설치하면 됩니다. MS_WIN~~.dll과 같은 보통의 경우, C++ 또는 C# Runtime Package를 설치하면 해결된다고 합니다.

 

위 프로그램을 사용해보아도 누락된 DLL에 대한 이름만 알 수 있고 해당 DLL은 개발자가 직접 찾아야 한다는 단점이 있습니다.

 

 

모든 Error는 해결하는데 대부분 삽질이 필요한 것 같습니다.

다행히 여러 방법으로 해결을 시도해볼 수는 있으니 다행인 것도 같지만요.

 

이번 포스트는 여기서 마무리하도록 하겠습니다.

 

 

반응형

댓글