2016-06-16 2 views
1

Visual Studio 2015에서 Release x64 플랫폼을 대상으로 HelloWorld.exe에 다음 C++ 코드를 작성했다고 가정 해 봅니다.VS 2015 C++ 재배포 가능 파일이 단일 DLL에 없습니까?

#include <iostream> 

int main() 
{ 
    std::cout << "Hello world!!" << std::endl; 
    return 0; 
} 

몇 년 전, 나는 단순히 HellowWorld.exe과 함께 (C 또는 msvcr###.dll) msvcp###.dll을 복사하여 실행 가능한 프로그램을 가질 수 있습니다.

방금 ​​VS2015를 설치했는데 이제는 msvcp140.dll을 가져올 수없는 것 같습니다. 내 System32 폴더에는 70 ~ ish api-ms-win-.....dll 개의 파일이 있어야하는 것으로 보입니다.

가장 좋은 정책은 재배포 가능 패키지를 설치하는 것입니다.하지만 불가능한 경우 .DLL을 복사하는 것이 가능한 대안입니다. 아직도 그렇습니까? 나는 쉽게 뭔가를 놓치고 있습니까?

요약 : 나는 단지 msvcp140.dll을 복사 할 수 있다고 생각했지만 제대로 작동하지는 않습니다. 내가 잘못?

참고 : list of things you are allowed to redistributeapi-ms-....dll 개의 파일이 표시되지 않습니다. 아니면 이것이 2015 런타임의 일부이며 이해할 수 있습니까?

+3

아니요. 버킷은 DLL, 디버그 DLL, 멀티 스레드 DLL 및 모든 smurfing 종류의 DLL로 가득 차 있습니다. 하나의 빠른 파일 교체와 PC가 Borg Collective에 환영 받고 있기 때문에 이러한 DLL을 보호하고 벽으로 막아 놓기를 원합니다. – user4581301

+1

틀린 것은 아닙니다. 정적 빌드를 수행하고 파일 크기에 대해 불평하는 사람에게 새 컴퓨터를 가져 오라고 말하십시오. –

답변

1

재배포 가능 패키지를 설치하는 대신 런타임 (/ MT 및/MTd 컴파일러 옵션)을 정적으로 연결하는 경향이 있습니다.

파일 크기가 커지지 만 DLL을 훨씬 멀리 운송하는 것보다 작습니다.

관련 문제