最近在编译POCO库和BOOST库

先讲一下编译POCO库,我编译的是1.9.0,过程相当曲折,要OPENSSL修改版本的,个OPENSSL在这里下载,如果你用一般未修改的OPENSSL 是编译不了,会出现大量错的

https://github.com/pocoproject/openssl

编译好后还要下载一个MYSQL 开发版本,一般是ZIP包,300多M的,要注意,如果你要编译32位POCO,就要下载MYSQL 32位,如果编译64位POCO,就要64位的MYSQL

然后修改 buildwin.cmd

主要修改下面两个地方

rem Change OPENSSL_DIR to match your setup
set OPENSSL_DIR=D:\opensourcelibrary\CPP\openssl-develop\VS_150
set OPENSSL_INCLUDE=%OPENSSL_DIR%\include
set OPENSSL_LIB=%OPENSSL_DIR%\win32\lib\debug;%OPENSSL_DIR%\win32\lib\release;%OPENSSL_DIR%\win32\bin\debug;%OPENSSL_DIR%\win32\bin\release;
set INCLUDE=%INCLUDE%;%OPENSSL_INCLUDE%
set LIB=%LIB%;%OPENSSL_LIB%
rem Change MYSQL_DIR to match your setup
set MYSQL_DIR=D:\mysql
set MYSQL_INCLUDE=%MYSQL_DIR%\include
set MYSQL_LIB=%MYSQL_DIR%\lib\;%MYSQL_DIR%\lib\debug
set INCLUDE=%INCLUDE%;%MYSQL_INCLUDE%
set LIB=%LIB%;%MYSQL_LIB%
 
修改完按照自己的VS版本进行执行,比如我是VS 2017 是 VC 150 版本,我就执行build_vs150.cmd,如无意外就编译成功
 
再讲一下编译boost 库,要编译winXP可以用的,我就这样做
 
先下载一个boost_1_68_0.zip
然后解压
 
然后再执行如下
注意,我测试过,好像VS2015或者以上的版本都不能编译XP下面可以用的版本,测试过在VS2013正常地编译了一份XP下面可以用的BOOST库
执行前要先执行这几条语句
set INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
set PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
set LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
 
网上有说还要执行以下
set CL=/D_USING_V110_SDK71_;%CL%
set LINK=/SUBSYSTEM:CONSOLE,5.01 %LINK%
 
但我试过,执行以后执行bootstrap.bat会出错的,不建议执行上面两条语句
出错会如下
 

d:\boost_1_68_0\tools\build\src\engine>if exist bootstrap rd /S /Q bootstrap

d:\boost_1_68_0\tools\build\src\engine>md bootstrap

d:\boost_1_68_0\tools\build\src\engine>cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib /Febootstrap\jam0 command.c compile.c constants.c debug.c execcmd.c execnt.c filent.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathnt.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c class.c cwd.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c
command.c
cl : Command line error D8038 : invalid argument '_USING_V120_SDK71_;%CL%'

d:\boost_1_68_0\tools\build\src\engine>exit /b 2

d:\boost_1_68_0\tools\build\src\engine>if exist bootstrap rd /S /Q bootstrap

d:\boost_1_68_0\tools\build\src\engine>md bootstrap

d:\boost_1_68_0\tools\build\src\engine>cl /nologo /RTC1 /Zi /MTd /Fobootstrap/ /Fdbootstrap/ -DNT -DYYDEBUG -wd4996 kernel32.lib advapi32.lib user32.lib /Febootstrap\jam0 command.c compile.c constants.c debug.c execcmd.c execnt.c filent.c frames.c function.c glob.c hash.c hdrmacro.c headers.c jam.c jambase.c jamgram.c lists.c make.c make1.c object.c option.c output.c parse.c pathnt.c pathsys.c regexp.c rules.c scan.c search.c subst.c timestamp.c variable.c modules.c strings.c filesys.c builtins.c md5.c class.c cwd.c w32_getreg.c native.c modules/set.c modules/path.c modules/regex.c modules/property-set.c modules/sequence.c modules/order.c
command.c
cl : Command line error D8038 : invalid argument '_USING_V120_SDK71_;%CL%'

d:\boost_1_68_0\tools\build\src\engine>exit /b 2

 
 
接着执行bootstrap.bat
 
D:\opensourcelibrary\CPP\boost_1_68_0>bootstrap.bat 

Building Boost.Build engine
Bootstrapping is done. To build, run:
.\b2
To adjust configuration, edit 'project-config.jam'.
Further information:
- Command line help:
.\b2 --help
- Getting started guide:
http://boost.org/more/getting_started/windows.html - Boost.Build documentation:
http://www.boost.org/build/doc/html/index.html
D:\opensourcelibrary\CPP\boost_1_68_0>

如果你是VS2013 并且想编译WINDOWS XP下面可以用的32位库,运行下面语句
b2.exe toolset=msvc-12.0_xp link=static runtime-link=static,shared --build-dir=build/x86 address-model=32 -j5 install --includedir=D:\opensourcelibrary\CPP\boost_1_68_0\win32\include --libdir=D:\opensourcelibrary\CPP\boost_1_68_0\win32\lib\x86 define=BOOST_USE_WINAPI_VERSION=0x0501
最后的 define=BOOST_USE_WINAPI_VERSION=0x0501 是指明XP下面也可以用的,如果你不需要XP也可以把那个参数删除,默认是WIN7的
如果你是编译 32位,编译个WIN7下面的库,这里是VS 2017为例子,因为是ms-vc 14.1版本,根据自己的VS版本填入适当的参数,我这里用了b2的命令,网上也有用bjam的,等下再讲
 
b2.exe toolset=msvc-14.1 link=static runtime-link=static,shared --build-dir=build/x86 address-model=32 -j5 install --includedir=D:\opensourcelibrary\CPP\boost_1_68_0\win32\include --libdir=D:\opensourcelibrary\CPP\boost_1_68_0\win32\lib\x86 

如果你是编译64位,这个命令
b2.exe toolset=msvc-14.1 link=static runtime-link=static,shared --build-dir=build/x64 address-model=64 -j5 install --includedir=d:\opensourcelibrary\CPP\boost_1_68_0\win64\include --libdir=d:\opensourcelibrary\CPP\boost_1_68_0\win64\lib\x64

最近编译POCO 库和 Boost库的笔记的更多相关文章

  1. 使用VS2015 编译 64位的boost库

    别人写的编译参考: 目标:使用VS2015 编译 64位的boost库. 一直以来都是在Win32环境下Build和使用boost,但现在基本上每天都在64位Win7下工作,所以很有必要把这几天的经验 ...

  2. 漫步Facebook开源C++库Folly之string类设计(散列、字符串、向量、内存分配、位处理等,小部分是对现有标准库和Boost库功能上的补充,大部分都是基于性能的需求而“重新制造轮子”)

    就在近日,Facebook宣布开源了内部使用的C++底层库,总称folly,包括散列.字符串.向量.内存分配.位处理等,以满足大规模高性能的需求. 这里是folly的github地址:https:// ...

  3. windows下编译Android版本的boost库文件

    1.起因: 手上有一个用到了boost的asio库和thread库的工程要编译到手机上(Android版本和ios版本),本文只介绍如何编译到Android版本,ios版本之后再介绍,也许就不介绍了( ...

  4. 《超越C++标准库:Boost库导引》:序

    序(Foreword) C++社区正在发生着一些美妙的事情.尽管C++仍然是世界上使用最广泛的编程语言,它依旧在变得更加强大而且易用.不信么?容我慢慢道来. 当前版本的标准C++是在1998年最终确定 ...

  5. 简单编写makefile文件,实现GCC4.9编译项目,增加boost库測试等等。。

    一.须要用到的hw.cpp hw.h funtest.cpp funtest.h makefile 几个測试文件 1.hw.cpp代码例如以下: #include "hw.h" # ...

  6. boost库在windows下的编译和使用

    因为跨平台的原因,现在要使用到boost库,boost库非常大,现在处于摸索阶段. 首先来说boost库在window下的安装和使用. 一.下载 首先从boost官方主页http://www.boos ...

  7. Boost库编译安装

    一.Boost库介绍         Boost库是一个经过千锤百炼.可移植.提供源代码的C++库,作为标准库的后备,是C++标准化进程的发动机之一.Boost库由C++标准委员会库工作组成员发起,其 ...

  8. boost库生成文件命名和编译

    生成文件命名规则:boost中有许多库,有的库需要编译.而有的库不需要编译,只需包含头文件就可以使用.编译生成的文件名字普遍较长,同一个库根据编译链接选项不同,又可以生成多个不同名字的文件.生成的文件 ...

  9. 编译并使用boost库(win7+boost1.63+vs2015+32位or 64位),超详细,boost于vs2017下编译(64/32bit)

    首先下载得到boost的最新版(目前最新版是1.63) 下载地址: http://www.boost.org   也可以从这里直接下载 http://download.csdn.net/detail/ ...

随机推荐

  1. 转-MAC 下安装PHONEGAP开发环境

    来自:http://jinzhe.net/post/8.html 什么是Phonegap呢?Phonegap是一个利用HTML5去开发App的框架.可以为安卓.iOS.WP.黑莓.火狐等移动操作系统. ...

  2. 加权平均值 WAvg”

    https://wenku.baidu.com/view/13d974fff8c75fbfc77db2d3.html

  3. Oracle分区表例子

    分区表 Oracle提供的分区方法有以下几种. 1.范围分区(range) 范围分区是应用范围比较广的表分区方式,它是以列的值的范围来作为分区的划分条 件,将记录存放到列值所在的 range分区中. ...

  4. 多个文本框点击复制 zClip (ZeroClipboard)有关问题

    <script type="text/javascript" src="js/jquery.min.js"$amp;>amp;$lt;/script ...

  5. 关于.Net中Process的使用方法和各种用途汇总(二):用Process启动cmd.exe完成将cs编译成dll

    上一章博客我为大家介绍了Process类的所有基本使用方法,这一章博客我来为大家做一个小扩展,来熟悉一下Process类的实际使用,废话不多说我们开始演示. 先看看我们的软件要设计成的布局吧. 首先我 ...

  6. 初识react native遇到的问题

    Andriod 使用react native时遇到的问题     打开现有项目报错: 从第一行Error可以知道是一个zip的压缩文件打不开,往下看应该是下载的Gradle文件有问题,提示也是让从新下 ...

  7. window下phpstudy开启redis扩展

    注:一定要注意自己PHP的版本结构是64还是32位的!其次查看PHP Extension Build是NTS or TS! 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本(特 ...

  8. iOS重签

    由于渠道推广需要,可能需要多个包做备份推广,区别是icon.游戏名称.登录logo.bundleid.签名证书.支付Consumables不同,其他游戏包体完全相同. 反复修改多次文件提交Jenkin ...

  9. ALTER USER - 改变数据库用户帐号

    SYNOPSIS ALTER USER name [ [ WITH ] option [ ... ] ] where option can be: [ ENCRYPTED | UNENCRYPTED ...

  10. JS Object 属性判断

    in 方法 var shapeInfo = {name:“lium”}; if (“name” in shapeInfo) {...}