Я установил boostpro (boost 1.47) в моей системе. (Windows 7 32-битная)
Когда я запускаю команду bjam в «C: \ Program Files \ boost \ boost_1_47 \ libs \ python \ example», я получаю следующую ошибку
C:\Program Files\boost\boost_1_47\libs\python\example\boost-build.jam attempted
to load the build system by invoking
'boost-build ../../../tools/build/v2 ;'
but we were unable to find "bootstrap.jam" in the specified directory
or in BOOST_BUILD_PATH (searching C:\Program Files\boost\boost_1_47\libs\python\
example\../../../tools/build/v2).
Что это значит? У меня даже нет инструментов / build / v2 в моей системе. Как я могу это исправить?
Вместо того, чтобы бороться с BJAM, вы можете проверить Scons. Однажды я писал приложение, использующее boost :: python, и Scons мне очень помогли. Для меня все было намного проще.
И вот пример Sconstruct:
import os, shutil, platform, re
import SCons.Builder
def copyLibBuilder( target, source, env):
'''copy library'''
shutil.copy( str(source[0]), str(target[0]) )
return
env = Environment()
env.Append( ENV = {'PATH' : os.environ['PATH'] })
if(platform.system() == "Linux"):
env.Append( CPPPATH = ['/usr/include/python2.7'] )
env.Append( LIBPATH = ['/usr/lib/python2.7'] )
env.Append( CPPFLAGS = '-Wall -pedantic -pthread -O3 -std=c++0x -lboostpython' )
env.Append( LINKFLAGS = '-Wall -pthread' )
env.Append( LIBS = [ 'boost_python' ] )
elif(platform.system() == "Windows"):
env.Append( CPPPATH = [ Dir('C:/Boost/include/boost-1_52'), # path to installed boost headers
Dir('C:/Python27/include') ] ) # path to installed python headers
env.Append( LIBPATH = [ Dir('C:/Boost/lib'), # path to boost library
Dir('C:/Python27/libs') ] ) #path to python
env.Append( CPPFLAGS = ' /EHsc /MD /D "WIN32" /D "_CONSOLE" /W4' )
env.Append( LINKFLAGS = ' /SUBSYSTEM:WINDOWS ' )
else:
print platform.system() + " not supported"
#build C++ library
cpplib = env.SharedLibrary( target = 'sources',
source = ['file1.cpp', 'file2.cpp'])
if(platform.system() == "Linux"):
target = 'my_new_module.so'
elif(platform.system() == "Windows"):
target = 'my_new_module.pyd'
env.Command(target, cpplib, copyLibBuilder )
Других решений пока нет …