2011-03-15 5 views
7

할당을 제출해야하지만 실제로 사용한 부스트 (boost :: shared_ptr 및 boost :: function을 사용)의 헤더 파일 만 포함하고 싶습니다. 이렇게 수동으로 시도했지만 일부 헤더 파일이 누락되었습니다. 그리고 추가 할 때마다 더 많은 내용이 누락되었습니다. 실제로 필요한 헤더를 정확히 찾는 간단한 방법이 있습니까?부스트에서 필요한 헤더 만 가져 오기

감사

답변

13

bcp 명령이 만들어된다

NAME

bcp - extract subsets of Boost 

SYNOPSIS

bcp --list [options] module-list 
    bcp [options] module-list output-path 
    bcp --report [options] module-list html-file 
    bcp --help 

DESCRIPTION

Copies all the files, including dependencies, found in module-list to 
    output-path. output-path must be an existing path. 

하지만 부스트 헤더가 얼마나 상호 의존적인지 알면 놀랄 것입니다.

+0

bcp를 빌드해야합니까? 내 부스트 디렉토리에만 소스 파일을 찾을 수 있습니다 – Megatron

+0

Dunno. 내 데비안/우분투 컴퓨터에는'libboost1.42-dev' 패키지가 있습니다. –

+1

최근 Windows에서이 작업을 수행해야했습니다. tools \ bcp 폴더로 이동하여 ".. \ .. \ bjam.exe --toolset = msvc"를 입력하십시오. – dubnde

1

정확히 그렇게 bcp라는 도구가있다 - 당신이 필요로하는 부스트의 부분과 더 이상을 복사합니다.

1

문제에 대한 또 다른 해결책은 전처리 기입니다.

컴파일러에는 gcc와 clang의 전 처리기 (-E) 만 실행하는 스위치가 있어야합니다. 이 경우, 포함시키는 두 개의 파일을 전처리 할 수 ​​있고이 실행 결과를 자신의 헤더 파일 (각각)에 숨길 수 있습니다.

헤더 가드를 추가하고 일반 부스트 헤더 대신 이미 사전 처리 된 헤더를 포함하면 작업이 완료됩니다.

물론 두 헤더 사이에 약간의 반복이있을 수 있습니다. diff 도구는 잠재적으로 다른 헤더에서 해당 헤더를 분해 해내는 데 도움이 될 수 있습니다 ... 그러나 할당을 위해 나는 확실히 신경 쓰지 않을 것입니다.

선생님께서는 컴파일 된 표준 라이브러리 헤더를 제공하라고 요청하지 않으므로 사용하신 부스트 헤더를 요구해서는 안된다는 것을 선생님에게 이야기 해보십시오.

관련 문제