Visual Studio 2013 MSVCR110d.dll이 누락입니다


4

이것이 SuperUser 또는 StackOverflow에 속하는지 확실하지 않지만 코딩 문제가 아닌 것이므로이 문제를 해결할 것입니다.

FreeGLUT 및 FreeImage를 사용하는 Visual Studio 2013을 사용하여 C ++ 게임 작업을 시작했습니다. 문제없이 데스크톱에서 컴파일하고 실행할 수 있지만 랩톱에서 동일한 코드를 컴파일하려고하면 "msvcr110 d .dll이 컴퓨터에 없습니다."라는 오류가 발생 합니다. 그 후 Visual Studio가 정지 될 확률은 약 50 %이며 작업 관리자가 프로세스를 중지 할 수 없으므로 컴퓨터를 다시 시작해야합니다 (여전히 진행중인 다른 문제).

Google 검색에 따르면 Visual C ++ 재배포 가능 패키지 2012를 설치하라는 메시지가 표시되었지만이 랩톱 (x86 및 x64)에 이미 설치되어 있고 다시 설치 ( http://www.microsoft.com/en-us/download/details.aspx) ? id = 30679 )는 전혀 도움이되지 않았습니다. 또한 Visual C ++ 재배포 가능 패키지 2013 (x86 & x64, http://www.microsoft.com/en-us/download/details.aspx?id=40784 )을 설치하려고 했지만 아무 소용이 없습니다. 이 두 링크 모두 ARM 다운로드 기능이 있습니다. 그것이 무엇인지 잘 모르겠으며 설치하려고하면이 버전의 Windows (Windows 8)에 설치할 수 없다는 팝업이 표시되므로 필요하지 않다고 가정합니다. .

C : \ Windows \ SysWow64 폴더에서 msvcr110.dll은 볼 수 있지만 msvcr110 d .dll 은 볼 수 없습니다 . 릴리스 버전이 설치된 것처럼 보이지만 디버그는 아닙니다. msvcr120 d .dll이 2013 버전 버전이어야합니까? 따라서 Visual Studio 2013에서 msvcr110 d .dll 대신 사용하지 않아야 합니까?

표준 C ++ HelloWorld 프로젝트를 실행하면이 문제가 없으므로 FreeGLUT 또는 FreeImage와 관련이 있어야합니다. 그러나 문제없이 데스크톱에서 컴파일되고 실행되므로 모든 것이 올바르게 코딩되고 연결되어 있다고 생각합니다. include 디렉토리, 라이브러리 디렉토리 (둘 다 디버그)를 추가하고 opengl32.lib & FreeImaged.lib를 추가 종속성으로 추가했습니다.

Visual C ++ 재배포 가능 패키지를 설치해도 도움이되지 않으므로이 문제를 해결하는 다른 방법이 있습니까? Visual Studio 2013에서 msvcr110d.dll을 사용해야합니까, 아니면 msvcr120d.dll을 사용해야합니까? MSVCR 다운로드 페이지에서 ARM을 설치해야합니까? Windows 8 64 비트를 사용하고 있습니다 (새로운 랩톱도 손상이 없다고 생각합니다). 도움을 주셔서 감사합니다.

더그


x86-64 하드웨어에서 실행중인 경우 왜 ARM 설치가 필요합니까? FreeGLUT 또는 FreeImage에 문제가있는 것 같습니다. 이들이 오픈 소스라면 x64 또는 x86을 직접 지원하도록 컴파일하십시오. VS2013은 현재 64 비트 위치가 아닌 32 비트 위치에있는 msvcr120.dll을 설치해야합니다.
Ramhound

나는 ARM 설치가 무엇을하는지 잘 모르겠습니다. 그래서 내가 묻는 이유입니다. 그래서 필요하지 않습니다. 저는 FreeImage와 FreeGLUT을 모두 컴파일했으며 데스크탑에서 작동하므로 제대로 작동한다고 생각합니다. 내 데스크톱과 랩톱 모두 Visual Studio 2013을 사용하고 있기 때문에 동일한 컴파일러가 있어야하며 해당 솔루션을 다시 컴파일 할 필요가 없습니까? 나는 C ++에 익숙하지 않지만 그것이 얻은 인상입니다.
Doug

설치 한 것과 같은 재배포 가능 패키지에는 디버그 버전의 DLL이 포함되어 있지 않습니다. 따라서 당신은 그것들을 얻지 못할 것입니다. Visual Studio를 설치할 때만 사용할 수 있습니다. 그러나 일단 가지고 있으면 테스트를 위해 프로그램과 함께 복사 할 수 있습니다.
Tim

답변:


4

" 표준 C ++ HelloWorld 프로젝트를 실행하면이 문제가 발생하지 않으므로 FreeGLUT 또는 FreeImage와 관련이 있어야합니다. "

당신이 올바른 길을 가고 있다고 생각합니다. 디버그 모드에서 FreeGLUT 또는 FreeImage가 컴파일되는 것처럼 들리므로 "D"버전이 요청됩니다. 종속성의 릴리스 컴파일을 사용하십시오.


디버그를 의미하는 d 버전을 수집했지만이 프로젝트를 거의 시작하지 않았습니다. 오류가있는 프로그램은 이미지 확인 및 이미지 이동 및 테스트였습니다. 따라서 실제로 릴리스 할 때까지 디버그 컴파일을 사용하는 것이 좋습니다. 게임을 만들 때 코딩 오류를 훨씬 쉽게 찾을 수 있습니다.
Doug

1
VS2013 DVD의 패키지에는 디버그 런타임 용 MSI 설치 관리자가 있습니다. 설치하십시오.
magicandre1981

VS2013을 다운로드 한 .iso를 마운트 한 후 각각 .msi 설치 프로그램이있는 2 개의 폴더 / packages / vcRuntimeDebugD11 (_x86 / _amd64)가 있습니다. 그러나 실행하려고하면 단순히 도움이되지 않는 setup.exe를 사용하라는 메시지가 나타납니다. ReadMe.htm 파일에 나열된 다른 설치 옵션에 대해서는 언급하지만 .iso의 어느 곳에서도 찾을 수 없습니다. 이러한 각 폴더에는 110d 파일 이 많은 .cab 파일도 있습니다 (msvcr110d는 그중 하나임). 누락 된 파일이있는 것처럼 보입니다.이 파일을 강제로 설치할 수있는 방법이 있습니까? 어떻게 든 수동으로 추출 할 수 있습니까?
Doug

내가 얻은 것은 그것이 디버그 DLL에 문제를 일으키는 원인인지 확인하는 것이 었습니다. 솔직히 디버그 DLL이 랩톱에서 누락 된 경우 Studio 설치에 문제가 있다고 생각합니다.
Patrick Seymour

Visual Studio를 이미 완전히 다시 설치했습니다 (이것은 새로운 랩톱이므로 Windows에는 아무런 문제가 없습니다). 필요한 파일이 .iso에 있으면 다른 방법으로 설치할 수 있습니까? 특정 디렉토리에 수동으로 추출하여 마술처럼 해결할 수 있다고 생각하지 않습니다.
Doug

0

원격 디버그 (또는 다른 시나리오)를 시도하는 경우 런타임 라이브러리 설정을 다중 스레드 디버그 DLL (/ MDd)-> 다중 스레드 디버그 (/ MTd)에서 변경해야 할 수 있습니다.

프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Properties-> C++-> Code Generation를 선택한 다음 Runtime Library옵션을 아래로 내리고 옵션을 "DLL"없이 설정 중 하나로 수정 하여 VS2012 에서이를 수행 할 수 있습니다 (설정 여부 선택) 디버그 모드 또는 릴리스 모드 생성을 원합니다).

이것이 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.