2013-10-04 71 views
0

我想在Windows 7,python 2.7.3上設置Boost.Python 1.54.0。我安裝了boost_1_54_0並使用Visual Studio 2010進行了構建。我可以在發行版中構建和運行快速入門和教程示例(我必須在Jamroot中添加一些MSVC lib dirs作爲庫路徑需求,但這沒關係)。但是,當我將教程示例複製到不同的目錄中,而不是在boost dist目錄中時,爲了使它更像一個真正的項目,bjam給出了構建錯誤。我在Jamroot中改變了使用項目助推位置/本地/ boost_1_54_0 /這就是升壓想自行安裝,並增加了一個簡單的單行升壓build.jam中(基於東西,我在網上找到):在Windows上構建Boost.Python教程示例的錯誤

boost-build C:/local/boost_1_54_0/tools/build/v2 ; 

但最終的bjam給了我這個錯誤:

% bjam 
notice: no Python configured in user-config.jam 
notice: will use default configuration 
C:/local/boost_1_54_0/tools/build/v2/build\project.jam:262: in find-jamfile from module project 
error: Unable to load Jamfile. 
error: Could not find a Jamfile in directory '/local/boost_1_54_0'. 
error: Attempted to find it with pattern '[Bb]uild.jam [Jj]amfile.v2 [Jj]amfile [Jj]amfile.jam'. 
error: Please consult the documentation at 'http://www.boost.org'. 
C:/local/boost_1_54_0/tools/build/v2/build\project.jam:280: in load-jamfile from module project 
C:/local/boost_1_54_0/tools/build/v2/build\project.jam:64: in load from module project 
C:/local/boost_1_54_0/tools/build/v2/build\project.jam:89: in load-used-projects from module project 
C:/local/boost_1_54_0/tools/build/v2/build\project.jam:75: in load from module project 
C:/local/boost_1_54_0/tools/build/v2/build\project.jam:145: in project.find from module project 
C:/local/boost_1_54_0/tools/build/v2\build-system.jam:535: in load from module build-system 
C:\local\boost_1_54_0\tools\build\v2/kernel\modules.jam:289: in import from module modules 
C:\local\boost_1_54_0\tools\build\v2/kernel/bootstrap.jam:139: in boost-build from module 
C:\tmp\tutorial\boost-build.jam:1: in module scope from module 

些什麼,我需要補充,或者我究竟做錯了什麼?

回答

0

我最終放棄了這個bjam,只是使用了SCons。一個簡單的SConstruct足夠:

# SConstruct for building boost python tutorial example 

import os 

boost_python_lib = 'boost_python-vc100-gd-1_54' 
boost_top  = 'c:/boost' 
python_top  = 'c:/python27' 

env=Environment(TARGET_ARCH='x86', 
       CCFLAGS=['/MDd', '/DEBUG', '/EHsc'], 
       CPPPATH=[os.path.join(boost_top,'include/boost-1_54'), 
         os.path.join(python_top, 'include')], 
       LIBPATH=[os.path.join(boost_top, 'lib/i386'), 
         os.path.join(python_top, 'libs')]) 
dll=env.SharedLibrary('hello_ext', 'hello.cpp', 
         LIBS=boost_python_lib) 
env.InstallAs('hello_ext.pyd', dll[0]) 
# Copy the boost python lib into this dir so hello_ext will find it at runtime 
env.Install('.', os.path.join(boost_top, 'lib/i386', '%s.dll'%boost_python_lib)) 

當然你可以做一個真正的SCons的Tool出這一點,但是這已經足夠讓我去。希望它對其他人有用。