多平台安装boost ,mongodb c++ driver

来源:互联网 发布:linux 流媒体服务器 编辑:程序博客网 时间:2024/06/11 05:36
1.use python2.7 32bit
2.env path :=C:/python27;C:/Python27/Scripts;
3.scons --cpppath=boost头文件目录 + $(4) + --64(或者32)


$(4):--dynamic-windows     ->libmongoclient.lib
     --dynamic-windows --dbg=on   ->libmongoclient-gd.lib
     --dbg=on ->libmongoclient-sgd.lib
     (nothing) ->libmongoclient-s.lib


4.boost compile cmd: (http://www.cppblog.com/Robertxiao/archive/2013/01/06/197022.html)
windows, mac:
->  root dir:
->bjam link=static runtime-link=static--64(或者32)          (http://ppgunjack.iteye.com/blog/985904)
linux32:
->bjam ...... --without-mpi --without-context --without-coroutine (也许不需要)
如果加入variant=debug,release 会导致 Name clash for '....


加入环境变量
BOOST_INCLUDE=/usr/local/include/boost-1_58_0 BOOST_LIB=/usr/local/lib 
export BOOST_INCLUDE BOOST_LIB
将其保存为/etc/profile.d/boost.sh,并使用chmod a+x boost.sh设置执行权限




需要c++11
gcc下载地址http://ftp.gnu.org/gnu/gcc/gcc-4.8.2/
安装:
解压缩:tar -xf gcc-4.8.2.tar.gz;
进入到目录gcc-4.8.2,运行:./contrib/download_prerequisites
建立输出目录并到目录里:mkdir gcc-build-4.8.2;cd gcc-build-4.8.2
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make
make install
gcc -v (check version)




编译threading=multi 必须 
#yum install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel -y


note !!! 在log.h里面,只有mac下才用BOOST_LOG_DYN_LINK 1 !!!否则链接会找不到log::xxx


链接静态库可以 -static -o target,但这样某些 -lrd这种就链不上了,所以静态库直接全名 libboostxxx.a



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
<1> 如果选择64,那么boost,mongodb driver,以及windows工程都需要统一(特别是win工程,一定要设成x64)
<2> 静态链接:
proj:MTd, boost:runtime-link=static          mongodriver: 默认
    动态链接:
        proj:MDd, boost:runtime-link=dynamic mongodriver: --dynamic-windows
<3> 配置
debug:     boost:variant=debugmongodriver: --dbg=on
release:    boost: variant=releasemongodriver: --dbg=off
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
还可以编dll版的, mongodriver: --shared  我没尝试


最终我成功的配置(win7,vs2013):  64位, runtime->static, proj->MTd, debug
0 0