본문 바로가기

Programming/▷ ETC

Visual Studio exe 실행파일 dll 에러 방지

Visual Studio 2010 이상 버전에서 작성된 실행파일을 실행시킨다면 

닷넷 프레임워크가 설치되어 있지 않은 환경에서는  DLL파일이 없다는 에러가 뜬다. (msvcr100.dll 등)


그 이유가 궁금해서 구글에 검색해본 결과 

Visual Studio Project의 기본 설정값이 "동적 라이브러리" 링크로 설정되어 있어서 콘솔 프로그램인 exe에 해당하는 dll 라이브러리가 포

함 안되어 있어서 참조 못하는 에러라고 한다.


Visual Stdio 2010 에서 콘솔 프로그램을 만들때 "정적 라이브러리" 방식으로 컴파일 하도록하면 dll 오류를 방지할 수 있다.


방법1

1. 프로젝트 → 프로젝트 속성

2. 구성속성 → C/C++ → 코드생성

3. "런타임 라이브러리" 항목을 debug, release 모드에 맞게 수정


  - Debug    : 다중 스레드 디버그 DLL (/MDd) 에서 다중 스레드 디버그 (/MTd)로 변경

  - Release  : 다중 스레드 DLL (/MD) 에서 다중 스레드 (/MT)로 변경


컴파일을 다시 하면, exe 파일에 dll이 포함된다. 

당연히 exe 파일의 크기는 증가한다 (생각보다 많이 커진다)


방법2

1. 재배포 가능 패키지를 설치한다. (dll 파일 검색해서 설치)




출처: http://giyatto.tistory.com/41