生成VS2010的BOOST库

来源:互联网 发布:温州淘宝运营培训班 编辑:程序博客网 时间:2024/06/11 05:50

生成VS2010BOOST

系统:Windows 8.1

IDEVisual studio 2010

BOOST:1.65.1

 

1. 进入编译环境

点击Visual Studio Command Prompt(2010)进入对应的控制台文本环境,这个环境已经加载了编译所需的环境变量;在环境变量正确的情况下,也可以使用CMD控制台。

进入..(BOOST源码库存放位置)\boost_1_65_1\

2. 开始生成编译工具

执行bootstrap.bat//windows系统下需要执行这个批处理文件

在这个阶段出错,打开bootstrap.log文件查看错误信息,

发现strings.c中出现报错,syntax error: missing‘;’ before ‘type’....

出现类似错误的原因是类型未定义,这个原因是.c文件中,所有变量的声明必须在第一行可执行语句之前进行,strings.c文件中的变量声明位置进行更改即可。

重新执行bootstrap.bat。遇到上面的问题以同样的方式进行处理。

在这步中遇到的第二个问题是:LNK2001: unresolved external symbol _va_copy...

出项这个问题的原因是,把linux下的程序一直到VC上时,C版本不支持va_copy,因为va_copyC99中的。

根据bootstrap.log的显示,错误发生在连接debugger.obj的时候,所以在debugger.c中可以看到va_copy这个函数的掉用,在这个.c文件头部增加如下定义:

#ifndef va_copy

#ifdef __va_copy

#define va_copy(DEST,SRC) __va_copy((DEST),(SRC))

#else

#define va_copy(DEST,SRC) memcpy((&DEST),(&SRC),sizeof(va_list))

#endif

#endif

编译成功后,会提示 Bootstrapping is done. To build, run: .\b2,实际上可以使用.\bjam

3. 添加第三方库

有些库比如zlib是没有默认包含到boost库中的,需要先下载源代码,然后编译到boost库中。

zlibbzip2为例,下载源代码包,解压到本机,例如:

Zlib: c:\zlib-1.2.11

Bzip2: c:\bzip2-1.0.6

输入命令设置环境变量:

set BZIP2_SOURCE=”c:\bzip2-1.0.6”

set ZLIB_SOURCE=”c:\zlib-1.2.11”

4. 开始编译

在设置环境变量之后,输入.\bjam 开始默认编译。

编译结束之后,会显示include路径和library路径。

例如:

Include paths: c:\boost_1_65_1

Library paths: c:\boost_1_65_1\stage\lib


原创粉丝点击