2012-08-24 5 views
2

저는 bjam과 boost-python을 사용하여 C++로 작성된 일부 Python 모듈을 빌드하는 프로젝트를 상속하고 있습니다. Windows에서 Python 설치를 감지하도록 bjam을 얻으려면 어떻게해야합니까?

constant PYTHON_ROOT : C:/Python26 ; 
using python : 2.6 : $(PYTHON_ROOT) ; 
use-project boost : C:/boost_1_40_0 ; 

내가 파이썬 2.7 대신 설치, 그래서 그것을 변경 : :이 Jamroot 이전에 포함 된

using python : 2.7 : C:/Python27 ; 

은 그때 매우 느린 "... 인내심 후 (실패 bjam --toolset=msvc --with-python을 달렸다. .. "메시지 집합) pyconfig.h 또는 부스트 lib 파일을 찾을 수 없기 때문에. 내가 --python=2.7를 지정에도 불구하고 위의 라인의 2.6 버전에 문제가되었지만,

using python : 2.7 : C:/Python27/python.exe : C:/Python27/include : C:/Python27/lib ; 

pyconfig.h 문제를 해결 한 것으로 보인다 경로에 대한 명시하는 : 나는 그것을 변경했습니다.

에 존재하더라도 LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc90-mt-1_40.lib'과 같은 부스터 링커 오류가 발생합니다.

어떤 구성 플래그가 누락 되었습니까?

+0

다른 값을'using' 문으로 하드 코딩하는 대신'PYTHON_ROOT'을'C :/Python27'으로 변경하려고 시도 했습니까? 전자는 다른 곳에서 참조 될 수 있습니다. – martineau

+0

PYTHON_ROOT가이 Jamroot 파일의 바로 가기 인 것처럼 보였습니다. bjam이 PYTHON_ROOT 다른 곳을 기대하지 않는 한, 하위 디렉토리의 Jamfiles가 아닙니다. – UltraNurd

답변

1

"C :/boost_1_40_0"내의 "Boost.Python"이 Python2.6으로 작성되었다고 생각합니다. 하지만 요즘 Python2.7 바이너리 용 "Boost.Python" 및 도서관. 이것은 일반적인 오류입니다. Boost 소스 패키지를 Python2.7로 다시 빌드해야합니다!

+0

이것은 결국 문제가되었습니다. 우리는 파이썬 2.6에 대해 빌드 된 libs를 포함하고있는 오래된 부스트 스테이지 디렉토리를 지나가고있었습니다. – UltraNurd

1

은 Jamroot 파일에있는 내용에 따라, 당신은 처음으로 라인의 몇 가지를 추가해야 할 수도 있습니다 :이 디렉토리에 부스트를 사용하는 프로젝트를 말해야한다

use-project boost : <Full path to your boost root directory> ;

. 다음으로

<library>/boost/python//boost_python

: 당신이 사용하는 프로젝트 부스트 명령을 일단

또한, 프로젝트 라인에, 당신은 당신의 프로젝트 정의의 요구 사항 섹션에서 부스트 파이썬에 대한 라이브러리 요구 사항을 추가 할 수 있습니다 두 줄이 내 Jamroot 파일에 추가되면 링크 문제가 없어졌습니다.

Jamroot 파일을 게시 할 수 있다면 더 구체적인 것이 필요한지 알 수 있습니다.

관련 문제