- 论坛徽章:
- 0
|
RT
安装mongo c++ driver,windows下面,报错说找不到 boost的hpp文件,boost我已经装了,怎么把inlude和lib的路径让scons知道,
环境变量或者Sconstruct文件该如何修改?
Sconstruct
- # scons file for MongoDB c++ client library and examples
- import os
- # options
- AddOption( "--extrapath",
- dest="extrapath",
- type="string",
- nargs=1,
- action="store",
- help="comma separated list of add'l paths (--extrapath /opt/foo/,/foo) static linking" )
- AddOption( "--prefix",
- dest="prefix",
- type="string",
- nargs=1,
- action="store",
- default="/usr/local",
- help="installation root" )
- env = Environment( MSVS_ARCH=None )
- def addExtraLibs( s ):
- for x in s.split(","):
- if os.path.exists( x ):
- env.Append( CPPPATH=[ x + "/include" ] )
- env.Append( LIBPATH=[ x + "/lib" ] )
- env.Append( LIBPATH=[ x + "/lib64" ] )
- if GetOption( "extrapath" ) is not None:
- addExtraLibs( GetOption( "extrapath" ) )
- env.Append( CPPPATH=[ "mongo/" ] )
- env.Append( CPPDEFINES=[ "_SCONS" , "MONGO_EXPOSE_MACROS" ] )
- nix = False
- linux = False
- if "darwin" == os.sys.platform:
- addExtraLibs( "/opt/local/" )
- nix = True
- elif "linux2" == os.sys.platform or "linux3" == os.sys.platform:
- nix = True
- linux = True
- if nix:
- env.Append( CPPFLAGS=" -O3" )
- env.Append( LIBS=["pthread"] )
- if linux:
- env.Append( LINKFLAGS=" -Wl,--as-needed -Wl,-zdefs " )
- boostLibs = [ "thread" , "filesystem" , "system", "thread" ]
- conf = Configure(env)
- for lib in boostLibs:
- if not conf.CheckLib("boost_%s-mt" % lib):
- conf.CheckLib("boost_%s" % lib)
- dirs = [ "" , "bson/" , "bson/util/" ,
- "client/" , "s/" , "shell/" ,
- "db/" ,
- "scripting/" ,
- "util/" , "util/concurrency/" , "util/mongoutils/" , "util/net/" ]
- allClientFiles = []
- for x in dirs:
- allClientFiles += Glob( "mongo/" + x + "*.cpp" )
- allClientFiles += Glob( "mongo/util/*.c" )
- libs = []
- libs += env.SharedLibrary( "mongoclient" , allClientFiles )
- libs += env.Library( "mongoclient" , allClientFiles )
- # install
- prefix = GetOption( "prefix" )
- for x in libs:
- env.Install( prefix + "/lib/" , str(x) )
- for x in dirs:
- x = "mongo/" + x
- env.Install( prefix + "/include/" + x , Glob( x + "*.h" ) )
- env.Alias( "install" , prefix )
- # example setup
- clientTests = []
- clientEnv = env.Clone();
- clientEnv.Prepend( LIBS=["libmongoclient.a"])
- clientEnv.Prepend( LIBPATH=["."] )
- # examples
- clientTests += [ clientEnv.Program( "firstExample" , [ "client/examples/first.cpp" ] ) ]
- clientTests += [ clientEnv.Program( "secondExample" , [ "client/examples/second.cpp" ] ) ]
- clientTests += [ clientEnv.Program( "whereExample" , [ "client/examples/whereExample.cpp" ] ) ]
- clientTests += [ clientEnv.Program( "authTest" , [ "client/examples/authTest.cpp" ] ) ]
- clientTests += [ clientEnv.Program( "httpClientTest" , [ "client/examples/httpClientTest.cpp" ] ) ]
- clientTests += [ clientEnv.Program( "clientTest" , [ "client/examples/clientTest.cpp" ] ) ]
- clientEnv.Alias("clientTests", clientTests, [])
复制代码 |
|