문제

나는 내가 사용하는 부스트 구성 요소 중 하나에 몇 가지 버그를 겪었습니다. 문제를 조금 분석 한 후, 나는 내가 유일한 사람이 아니라는 것을 알았으며 저자는 이미 Boost SVN 트렁크에서 사용할 수있는 수정 사항을 발행했습니다.

이 구성 요소 만 업데이트하고 이미 구축 된 라이브러리를 재사용하려면 최선의 방법은 무엇입니까? 구성 요소는 헤더가 아닙니다.

  • 컴파일러 : SP1, TR1이있는 MSVC 9
  • OS : Vista
  • 부스트 : Boostpro 컴퓨팅의 1.39
  • 버기 구성 요소 : 부스트 파
  • 버그 : 레이스 조건. 이 버그는 올해 5 월에 고정되었지만 내가 알 수있는 한 릴리스에 포함되지 않았습니다.

내가 지금까지 한 일 :

  • Wave Subdir의 SVN 체크 아웃
  • 로컬 서브 디어를 교체했습니다
  • 이제 나는 빌드하고 싶은 것을 지정할 방법을 찾고 있습니다. 단지 파도

나는 전체 부스트 lib를 재건하는 데 약간 지친다. 트렁크가 지금 생산 준비가되었는지 모르겠습니다.

도움이 되었습니까?

해결책

내가 한 일은 다음과 같습니다.

  1. 먼저 문제가 고정 된 Wave Lib의 버전을 확인했습니다 (53230). 로컬 사본으로 확산 된 후 다음과 같은 변경 사항을 발견했습니다.

    -Wave가 자체 제공하는 대신 Boost.iterator 구현을 재사용했습니다.

    -Flex_String 구현이 업데이트되었습니다

    - 심판 카운터는 원자가로 만들어졌습니다. 이것은 버그 픽스 여야합니다

  2. 그런 다음 단순히 부스트/웨이브 디어를 SVN의 것과 교체했습니다. 나는 bootstrap.bat를 달렸다 (boostpro를 사용하는 경우 Boost Sources Zip에서 이것을 가져와야한다).

    BJAM-빌드 디렉토리 = 빌드 도구 세트 = MSVC 변형 = 디버그 | 릴리스 링크 = 정적 스레딩 = 멀티 런타임 링크 = 공유 -파이브

    추가-파이브는 파도와 그 종속성 만 구축됩니다.

  3. 이 시점에서 나는 컴파일 오류를 얻었습니다. 정신도 업데이트 된 것 같습니다. SVN에서 Spirit (53252)를 다운로드하고 BJAM 명령을 재발행했습니다.

    라이브러리가 깨끗하게 건축되고 두 개의 libs를 부스트 Lib 폴더에 복사했습니다.

이러한 단계를 수행 한 후 프로젝트를 재건하고 충돌 오류가 사라졌습니다.

다른 팁

최상의 접근 방식 : 패치를 구축하십시오 diff저장소의 변경 사항 (예 : 저장소의 일부를 확인하고 사용하여 svn diff), 그런 다음 부스트 설치에서 파일에 패치를 적용하여 patch (유닉스 도구).

Windows (예 : Cygwin)에 Unix와 같은 콘솔이 필요할 수 있습니다. 또는 TortoisesVN과 같은 Windows SVN 클라이언트를 활용할 수 있지만 버전 제어 외부에서 파일을 패치 할 수 있는지 확실하지 않습니다.

헤더 라이브러리에 대해 이야기하고 있습니까? 그렇지 않다면, 부스트 라이브러리의 해당 부분을 재건해야하며 불행히도 이것이 Boostpro의 Boost Installer와 호환되지 않는다고 생각합니다.

글쎄, 당신은 로그를 확인하고 문제가 고정되어 있다는 정확한 개정을 볼 수 있고, yhat 개정만이 다르며 패치를 수동으로 적용 할 수 있습니다.

부스트 자체가 크게 재사용하므로 하나의 구성 요소 만 업데이트하는 것이 좋습니다. 따라서 인터페이스가 변경되면 모든 종류의 이상한 행동을 얻기 시작합니다. 아마도 구성 요소와 버그를 지정하면 더 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top