2010-08-07 7 views
6

"일반적인"디렉토리 트리 (즉, /usr 대신 /custom/dir) 외부에 Boost를 구축해야합니다. 그다지 문제가되지는 않습니다. --prefix=/custom/path./runscript.sh/./bjam으로 전달하면됩니다.부스트가 강제로 rpath를 사용하는 방법?

또는 그렇게 생각했습니다. , --prefix 경로가 부스트 libs와의 라이브러리 검색 경로에 추가되지 것 같다 - ./bootstrap.sh/./bjam 통과하는 기본 빌드 프로세스를 사용하여 -

문제는 부스트 라이브러리의 일부가 서로에 의존하고 있다는 점이다 즉 -Wl,-rpath이 적용되지 않습니다. 즉 Boost 라이브러리는 다른 Boost 라이브러리에 따라 런타임에 찾을 수 없습니다.

내 응용 프로그램 - 그 /custom/path 부스트 라이브러리를 연결하는이 - libboost_filesystem.solibboost_system.so하지만 난 내 자신의 컴파일러 라인에 -Wl,-rpath=/custom/path/boost/lib을 통과 찾을 수 없기 때문에 이미 ./configure 단계에서 실패 (즉, 부스트 libs가 올바른 경로, 나는 재확인 저 libboost_system.so 거기있다).

이제는 LD_LIBRARY_PATH과 같은 무거운 방법을 피하기 위해 모든 부스트 라이브러리에 다른 부스트 라이브러리가 컴파일되도록 부스트를 작성하고 싶습니다. 그러나, 나는 그것에 대한 적절한 절차를 찾을 수 없습니다. 아무도 나를 도울 수 있습니까?

답변

5

당신은 함께 명령 줄에서 빌드하는 동안 컴파일러에게 & 링크 옵션을 추가 할 수 있습니다

bjam dll-path=/custom/path 

이에 대한 부스트 빌드 문서 (BBv2 docs 참조)에서 자주 묻는 질문 항목이있다.

+0

우수 감사합니다. – DevSolar

+2

Ahem ... 분명히 이것은 Boost 1.45.0 (정확하게 똑같은 호출)에서 작동을 멈췄습니다. 1.45.0에서 관련 변경 사항에 대한 언급을 찾을 수 없었습니다. 우연히 너보다 더 많이 안다 니? – DevSolar

+0

흠, 이보다 더 잘 모른다. 하지만 작동이 멈 추면 버그라고 생각합니다. 그리고 그러한 것으로보고되어야합니다. – GrafikRobot

관련 문제