2013-05-14 3 views
2

Visual Studio C++ (9.0 버전)에서 Boost 라이브러리 (특히 Boost 파일 시스템)를 사용했습니다. 이 Boost 라이브러리는 C 드라이브에 설치됩니다. 내 프로젝트가 이미 완료되었으므로 해당 디버그 및 릴리스 있습니다.부스트 라이브러리를 배포하는 방법은 무엇입니까?

이제 Debug and Release에 Boost 파일 시스템의 특정 DLL을 포함시키고 싶습니다. 그래서 첫 번째 질문은 어떤 DLL을 복사해야합니까? 그것은 파일 시스템을위한 많은 DLL을 보여줍니다. 내가 시도한 것은 "boost_filesystem-vc90-mt-1_40.dll""boost_filesystem-vc90-mt-gd-1_40.dll"입니다. 이후 "vc90"에서 아이디어를 얻었으므로 Visual Studio 9.0을위한 것이라고 생각합니까?

두 번째 질문은 Debug 나 Release에이 Boost 파일 시스템 DLL을 포함하지 않더라도 프로젝트의 EXE 파일이 아직 작동하는지 여부입니다. 아무도 왜 이런 일이 일어 났는지 설명해 주시겠습니까? 나는 나의 환경 변수에 어떻게 든 Boost Library 경로가 있는지 확인하려고 시도했지만, 불행하게도 거기에서 찾을 수 없었다. 고마워.

P .: 저는 C++과 Boost의 초보자입니다. 그리고 내가 사용하고있는 또 다른 라이브러리는 OpenCV입니다.이 라이브러리는 이미 Debug 및 Release에 해당 DLL (core, highgui 및 imgproc)을 복사했으며이 라이브러리는 완벽하게 작동합니다.

을 :

답변

4

당신은 두 가지 옵션이 있습니다. 바이너리와 함께 부스트 DLL을 배포하십시오. 귀하의 질문에 대답 - 물론 프로젝트가 부스트에 의존하는 경우 런타임에 라이브러리가 필요합니다. 바이너리 없이는 바이너리가 시작되지 않습니다.

프로젝트의 릴리스 구성을 배포하는 경우 boost_filesystem-vc90-mt-1_40.dll 라이브러리가 필요합니다. 일반적으로 Dependency Walker 도구를 사용하여 이진 파일의 모든 종속성을 볼 수 있습니다.

b. Link 정적으로 라이브러리를 확장하십시오.이 경우 바이너리는 부스트 DLL에 런타임 의존성이 없으므로 배포 할 필요가 없습니다.

관련 문제