이 글을 3줄로 요약하면
· vcomp140.dll은 Visual C++ v14 계열의 OpenMP 런타임 파일입니다. 병렬 연산을 쓰는 프로그램이 불러 씁니다.
· 파일 하나가 사라졌다기보다 그 파일이 들어 있는 재배포 패키지가 없거나 비트가 안 맞는 경우가 많습니다.
· 그래서 프로그램이 32비트인지 64비트인지가 갈림길입니다. 판별표에서 먼저 상황을 고르세요.
vcomp140.dll이 정확히 어떤 파일인가
이름 안에 이 파일의 출신과 세대가 그대로 적혀 있습니다.
파일 이름은 두 부분으로 나뉩니다. 앞의 vcomp는 Visual C++ OpenMP, 뒤의 140은 v14 계열 런타임이라는 뜻입니다. 마이크로소프트 문서의 OpenMP 라이브러리 참조를 보면 VCOMP.LIB가 VCOMP140.DLL을 위한 가져오기 라이브러리로 정의돼 있고, OpenMP DLL은 Visual C++ 재배포 디렉터리에 들어 있으며 OpenMP를 쓰는 응용 프로그램과 함께 배포해야 한다고 명시돼 있습니다.
OpenMP는 한 작업을 여러 코어에 나눠 동시에 돌리는 규격입니다. 그래서 3D 캐드, 통계·해석 프로그램, 영상 인코더, 일부 게임처럼 계산을 병렬로 처리하는 소프트웨어에서 이 파일을 요구하는 경우가 많습니다. 반대로 말하면 이 오류는 특정 프로그램군에 몰려서 나타납니다.
140이라는 숫자가 중요한 이유가 하나 더 있습니다. 마이크로소프트는 Visual Studio 2015·2017·2019·2022가 쓰는 v14 런타임을 하나의 재배포 패키지로 통합해 배포합니다. 즉 vcomp140.dll은 연도별로 따로 찾을 필요 없이 "Microsoft Visual C++ 2015-2022 Redistributable" 하나만 보면 됩니다.
화면에 뜨는 문구는 보통 "vcomp140.dll이(가) 없어서 이 코드를 실행할 수 없습니다" 또는 "시작 프로그램 ...에서 vcomp140.dll을 찾을 수 없기 때문에" 형태입니다. 두 문구 모두 프로그램이 요구한 위치에서 파일을 못 찾았다는 같은 뜻입니다.
DLL 파일만 내려받아 넣는 방법은 쓰지 않습니다
"DLL 다운로드" 사이트에서 파일만 받아 System32에 넣으라는 안내가 흔하지만, 출처와 서명을 확인할 수 없는 실행 코드를 시스템 폴더에 넣는 행위입니다. 버전이 어긋나면 다른 프로그램까지 함께 깨지고, 뒤에 나오는 sfc 검사에서 손상으로 잡힙니다. 아래 절차는 전부 공식 재배포 패키지로 해결합니다.
어떤 상황에서 떴는지로 원인 좁히기
한 프로그램만 그런지, 전부 그런지가 첫 갈림길입니다.
| 증상 | 유력한 원인 | 먼저 볼 항목 |
|---|---|---|
| 새로 설치한 프로그램을 처음 켤 때부터 떴다 | 재배포 패키지가 아예 없음 | 원인 A → 설치 목록 확인 |
| 잘 쓰던 프로그램이 어느 날 갑자기 안 열린다 | 다른 프로그램을 지우며 패키지가 함께 제거됨 | 원인 B → 패키지 복구 |
| 여러 프로그램에서 동시에 같은 창이 뜬다 | 공용 런타임 파일 손상 | 원인 B → 패키지 복구 |
| 한 프로그램만 뜨고 나머지는 멀쩡하다 | 그 프로그램이 요구하는 비트가 다름 | 원인 C → 비트 맞추기 |
| 패키지를 다시 설치했는데도 그대로다 | 시스템 파일·구성 요소 저장소 손상 | 원인 D → sfc·DISM |
| 백신을 지우거나 검사를 돌린 직후부터 시작됐다 | 파일이 격리됐거나 함께 삭제됨 | 원인 B → 파일 존재 확인 |
오류 창의 프로그램 이름을 적어 두세요
창 제목이나 본문에 어느 실행 파일이 요청했는지가 적혀 있는 경우가 많습니다. 그 실행 파일이 32비트인지 64비트인지가 원인 C를 가르는 기준이 되므로, 닫기 전에 이름을 남겨 둡니다.
원인 A재배포 패키지가 설치돼 있지 않다
가장 흔한 경우입니다. 확인은 1분이면 끝납니다.
vcomp140.dll은 윈도우에 기본으로 들어 있는 파일이 아닙니다. Visual C++ 재배포 패키지를 설치할 때 함께 들어옵니다. 그래서 윈도우를 새로 설치한 PC나, 설치 관리자가 재배포 패키지를 빼먹은 프로그램에서 이 오류가 처음 나타납니다.
1설치된 앱 목록에서 Visual C++를 검색한다
Win + I → 앱 → 설치된 앱에서 검색창에 Visual C++를 입력합니다. Microsoft Visual C++ 2015-2022 Redistributable (x64)와 (x86)이 보이는지 확인합니다. 하나도 없으면 원인이 여기서 확정됩니다.
2파일이 실제로 있는지 폴더에서 확인한다
64비트 윈도우에서 64비트용 파일은 C:\Windows\System32에 들어갑니다. 탐색기 주소창에 이 경로를 넣고 우측 검색창에 vcomp140.dll을 입력해 결과가 나오는지 봅니다. 목록이 비어 있으면 설치가 안 된 것입니다.
3공식 페이지에서 x64와 x86을 모두 설치한다
마이크로소프트의 최신 지원 Visual C++ 재배포 패키지 다운로드 문서에서 아키텍처별 설치 파일을 받습니다. 어느 쪽이 필요한지 모르겠다면 둘 다 설치해도 충돌하지 않습니다. 설치가 끝나면 재부팅한 뒤 프로그램을 다시 켭니다.
연도별로 여러 개를 깔 필요는 없습니다
2015·2017·2019·2022는 같은 v14 런타임을 공유합니다. 문서도 설치된 재배포 패키지 버전이 프로그램을 만든 도구의 버전과 같거나 그보다 최신이어야 한다고만 규정합니다. 즉 최신 하나면 충분하고, 오래된 버전을 따로 찾아다닐 이유가 없습니다.
이 방법이 안 통하는 경우
설치 목록에 이미 두 항목이 다 있는데도 오류가 뜬다면 설치 여부가 아니라 상태의 문제입니다. 원인 B로 갑니다. 설치를 시도했는데 "이미 최신 버전이 설치되어 있습니다"로 끝나 버리는 경우도 마찬가지입니다.
원인 B패키지는 있는데 파일이 손상됐다
목록에는 있는데 파일이 없거나 깨진 상태입니다.
재배포 패키지는 여러 프로그램이 같이 쓰는 공용 부품입니다. 그래서 어떤 프로그램을 지울 때 이 부품까지 함께 딸려 나가거나, 백신이 특정 파일을 격리하거나, 설치 도중 전원이 끊기면 목록에는 남아 있는데 실체가 없는 상태가 됩니다.
이때는 다시 설치하려 해도 "이미 설치됨"으로 끝나 버립니다. 지우고 새로 까는 대신 복구(수정) 기능을 쓰는 편이 정확합니다.
1설치된 앱 목록에서 복구를 실행한다
원인 A의 1단계 화면에서 해당 항목 우측의 점 세 개를 누르고 수정을 선택하면 복구 / 제거 선택 창이 나옵니다. 여기서 복구를 누르면 빠진 파일만 다시 채워집니다. x64와 x86 항목 각각에 대해 따로 해야 합니다.
2복구가 안 되면 제거 후 새로 설치한다
복구 버튼이 회색이거나 오류로 끝나면 같은 메뉴에서 제거한 뒤, 공식 페이지의 설치 파일로 다시 설치합니다. 이 순서를 지키지 않고 덮어쓰기만 반복하면 손상된 상태가 그대로 남습니다.
3백신 격리함을 확인한다
백신 검사 직후부터 시작됐다면 Windows 보안 → 바이러스 및 위협 방지 → 보호 기록에서 최근 격리 목록을 봅니다. 런타임 파일이 오진으로 잡혀 있으면 복원한 뒤, 같은 일이 반복되지 않도록 백신을 최신 정의로 갱신합니다.
이 방법이 안 통하는 경우
복구까지 마쳤는데 특정 프로그램 하나에서만 계속 뜬다면 공용 파일 문제가 아닙니다. 그 프로그램이 요구하는 비트가 다르거나, 프로그램 폴더 안에 자체 사본을 두고 쓰는 구조입니다. 원인 C로 갑니다.
원인 C프로그램 비트와 설치된 패키지가 안 맞는다
한 프로그램만 계속 오류를 내는 경우의 대표적인 이유입니다.
64비트 윈도우는 같은 이름의 DLL을 두 벌 보관합니다. 64비트용은 System32, 32비트용은 SysWOW64에 들어갑니다. 이름이 헷갈리기 쉬운데, SysWOW64가 32비트 쪽입니다. 32비트 프로그램은 System32에 있는 파일을 쓸 수 없으므로, x64 패키지만 설치돼 있으면 그 프로그램에서만 계속 같은 오류가 뜹니다.
1문제의 프로그램이 몇 비트인지 확인한다
프로그램을 실행한 뒤 Ctrl + Shift + Esc로 작업 관리자를 열고 세부 정보에서 그 프로세스를 찾습니다. 이름 뒤에 (32비트)가 붙어 있으면 32비트 프로그램입니다. 설치 경로가 C:\Program Files (x86) 아래인 것도 같은 신호입니다.
2해당 폴더에 파일이 있는지 확인한다
32비트 프로그램이라면 탐색기 주소창에 C:\Windows\SysWOW64를 넣고 vcomp140.dll을 검색합니다. System32에는 있는데 여기에는 없다면 원인이 확정됩니다.
3빠진 쪽 아키텍처의 패키지를 설치한다
32비트 프로그램에는 x86 패키지, 64비트 프로그램에는 x64 패키지가 필요합니다. ARM 기반 PC라면 ARM64 항목이 별도로 있습니다. 설치 후에는 파일을 손으로 옮기지 말고 재부팅한 뒤 확인합니다.
System32와 SysWOW64 사이에서 파일을 복사하지 않습니다
두 폴더의 같은 이름 파일은 내용이 다른 별개의 빌드입니다. 한쪽을 다른 쪽에 복사해 넣으면 프로그램이 로드에 실패하거나 다른 오류로 바뀝니다. 부족한 쪽은 해당 아키텍처의 설치 파일로 채웁니다.
이 방법이 안 통하는 경우
양쪽 폴더에 파일이 모두 있는데도 같은 창이 뜬다면, 프로그램이 자기 설치 폴더 안의 사본을 먼저 찾다가 실패하는 구조일 수 있습니다. 그 프로그램을 제거 후 재설치해 보고, 그래도 같으면 원인 D로 갑니다.
원인 D시스템 파일·구성 요소 저장소가 손상됐다
패키지를 아무리 다시 깔아도 그대로일 때 확인합니다.
재배포 패키지 설치도 결국 윈도우 설치 관리자를 거칩니다. 그 아래에 있는 구성 요소 저장소가 손상돼 있으면 설치가 성공했다고 표시되면서도 파일이 제자리에 놓이지 않습니다. 업데이트가 중간에 실패한 이력이 있는 PC에서 이런 형태가 나옵니다.
1시스템 파일을 검사한다
시작 버튼을 우클릭해 터미널(관리자)로 실행합니다. 검사가 100%에 닿을 때까지 창을 닫지 않습니다. "손상된 파일을 찾았으며 복구했습니다"가 나오면 재부팅 후 프로그램을 다시 켭니다.
2복구에 쓸 원본부터 고친 뒤 다시 검사한다
sfc가 "복구할 수 없습니다"로 끝나면 복구에 쓸 원본까지 상해 있는 상태입니다. 이 명령으로 저장소를 먼저 복구하고 sfc를 한 번 더 실행합니다. 순서를 바꾸면 같은 실패를 반복하게 됩니다.
3윈도우 업데이트를 최신으로 맞춘다
저장소를 복구한 뒤 Win + I → Windows 업데이트에서 대기 중인 항목을 모두 적용합니다. 그다음 재배포 패키지를 다시 설치하면, 앞에서 실패하던 설치가 정상적으로 끝나는 경우가 많습니다.
이 방법이 안 통하는 경우
DISM이 오류 0x800f081f처럼 원본을 못 찾는다고 응답하면 온라인 복구가 막힌 상태라, 같은 빌드의 설치 이미지를 원본으로 지정해야 합니다. 여기까지 왔다면 해당 프로그램만 재설치해 보는 쪽이 시간이 덜 듭니다. 프로그램 설치 관리자가 필요한 런타임을 함께 넣어 주는 경우가 많기 때문입니다.
어느 프로그램이 무엇을 못 찾았는지 확인하는 법
오류 창을 놓쳤거나, 요구 파일이 하나가 아닐 때 씁니다.
런타임이 여러 개 빠져 있으면 하나를 채울 때마다 다음 파일 이름으로 오류가 바뀝니다. 그때마다 검색해서 하나씩 채우는 대신, 어떤 실행 파일이 무엇을 요청하다 실패했는지를 로그에서 한 번에 보는 편이 빠릅니다.
1이벤트 뷰어의 응용 프로그램 로그를 연다
eventvwr.msc를 실행하고 Windows 로그 → 응용 프로그램에서 오류 항목을 클릭합니다. 아래 일반 탭에 오류 모듈 이름과 예외 코드가 표시됩니다. 프로그램을 다시 실행해 오류를 낸 직후에 보면 시간이 맞는 항목을 찾기 쉽습니다.
2모듈 이름으로 원인 섹션을 되짚는다
모듈 이름이 vcomp140.dll·vcruntime140.dll·msvcp140.dll처럼 140으로 끝나면 전부 같은 재배포 패키지 소속이라 원인 A·B로 해결됩니다. msvcr120.dll처럼 다른 숫자면 그 세대의 패키지가 따로 필요합니다.
3파일 속성에서 버전을 확인한다
System32의 vcomp140.dll을 우클릭해 속성 → 자세히를 보면 파일 버전과 제품 이름이 나옵니다. 제품 이름에 Microsoft Visual C++ 계열 표기가 없거나 버전이 비정상적으로 낮으면, 어딘가에서 받은 사본이 들어와 있는 것이라 원인 B의 복구로 되돌립니다.
정리하면 이 오류의 판단 기준은 "파일이 있는가"가 아니라 "맞는 자리에 맞는 비트로 있는가"입니다. 이벤트 로그로 요청한 쪽을 확인하고, 폴더로 있는 자리를 확인하면 나머지는 설치 하나로 끝나는 경우가 대부분입니다.
자주 묻는 질문
설치 전에 가장 많이 걸리는 지점들입니다.
Q.x86과 x64를 둘 다 설치해야 하나요?
A.필요한 쪽만 있으면 되지만, 둘 다 설치해도 충돌하지 않습니다. 32비트 프로그램은 x86, 64비트 프로그램은 x64 쪽 파일을 씁니다. 어느 쪽이 필요한지 모르겠고 프로그램이 여러 개라면 둘 다 설치하는 편이 시간이 덜 듭니다.
Q.DLL 파일만 따로 받아서 넣어도 되나요?
A.권장하지 않습니다. 출처와 서명을 확인할 수 없는 실행 코드를 시스템 폴더에 넣는 일이고, 버전이 어긋나면 다른 프로그램까지 함께 깨집니다. 게다가 그렇게 넣은 파일은 이후 sfc 검사에서 손상 항목으로 잡혀 되돌려집니다. 공식 재배포 패키지로 설치하는 편이 결국 빠릅니다.
Q.2015용을 따로 찾아야 하나요? 프로그램이 오래된 것입니다.
A.따로 찾지 않아도 됩니다. 2015부터 2022까지가 같은 v14 런타임을 공유하고, 문서 기준도 설치된 버전이 프로그램을 만든 도구 버전과 같거나 그 이상이면 됩니다. 다만 msvcr120.dll·msvcr100.dll처럼 숫자가 다른 파일을 요구한다면 그건 별개 세대라 그 세대의 패키지가 필요합니다.
Q.재설치해도 계속 같은 창이 뜹니다.
A.덮어쓰기만 반복했을 가능성이 큽니다. 설치 관리자가 "이미 설치되어 있습니다"로 끝나면 파일은 그대로입니다. 원인 B의 순서대로 복구 → 실패 시 제거 후 설치로 진행하고, 그래도 같으면 원인 D의 sfc·DISM으로 넘어갑니다.
Q.이 파일을 지우면 안 되는 이유가 있나요?
A.vcomp140.dll은 한 프로그램 전용이 아니라 여러 프로그램이 공유하는 런타임입니다. 지우면 지금 잘 돌아가는 다른 프로그램에서 같은 오류가 새로 생깁니다. 정리 도구로 "사용하지 않는 DLL"을 지우는 기능도 이 계열 파일에는 쓰지 않는 편이 안전합니다.
함께 보면 좋은 글
같은 재배포 패키지·모듈 문제로 이어지는 오류들입니다.
VCRUNTIME140_1.dll이 없습니다 오류 해결 순서 같은 v14 패키지에 들어 있지만 별도 파일이라 따로 빠지는 경우가 있습니다 · 눌러서 확인하기 → mfc140u.dll이 없습니다 오류 해결 순서 역시 140 계열이라 같은 재배포 패키지 하나로 함께 해결되는 경우가 많습니다 · 눌러서 확인하기 → 지정된 모듈을 찾을 수 없습니다(오류 126), 원인 4가지와 각각의 해결법 파일은 있는데 로드에 실패할 때 나타나는 다른 형태의 메시지입니다 · 눌러서 확인하기 →참고 문서 · Microsoft Learn — OpenMP 라이브러리 참조 (VCOMP140.DLL)
참고 문서 · Microsoft Learn — 최신 지원 Visual C++ 재배포 가능 패키지 다운로드
참고 문서 · Microsoft Learn — Visual C++ 파일 재배포





