boost1.34.0用MinGW怎么编译?我随带文档编译不通啊。
我想用install参数
bjam --gcc --prefix=E:\Boost install
结果提示:.construct.什么的failed,于是我只用了
bjam --gcc
开始编译,但是有20个skiped,为什么呢?
有谁遇到类似问题?给点经验啊,我的bjam也编译不成功是去下的。
[解决办法]
Boost在MinGW的编译安装手册
http://dozb.bokee.com/2055000.html
boost 版本不同,
但是大同小异,
参考一下。
[解决办法]
1、前提
a) 下载Boost_1_32_0源码包(http://sourceforge.net/project/showfiles.php?group_id=7586 ),由于在Windows平台下编译,我们可以选择下载boost_1_32_0.exe文件;
b) 安装Windows下的GCC版本(这里我们使用开源的GCC作为编译工具,因为其Free),我选择了MinGW-3.2.0-rc-3(http://sourceforge.net/forum/forum.php?forum_id=438862 );
c) 下载Boost专用build工具bjam,在Windows平台下我们可以得到已经编译好的bjam.exe(http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=72941 ),你可以 下载boost-jam-3.1.10-1-ntx86.zip文件。
2、目录结构
a) 运行下载后的boost_1_32_0.exe文件,选择解压缩到的目录即可。如D:\boost_1_32_0;
b) 将下载的bjam.exe拷贝到上述目录中。
3、设置环境变量
a) 由于默认情况下,MinGW会安装在C:\MinGW下,一旦你选择其他目录,你就需要自己设置Path。将%Your_MinGW_Install_Path%\bin加入到你的系统Path变量中。
4、Build
在命令行下进入到boost源码包存放的目录,如D:\boost_1_32_0,然后运行:
bjam “-sTOOLS=gcc” install
编译由此开始,如果你的系统没有装Python相关的东东,在编译的最开始会提示你一些warnings,无须理它,让它继续吧!默认的boost安装路径为C:\boost,我们这里采用默认路径。
5、Build结果
编译的过程是漫长的(一般配置的机器2小时左右),需要你耐心的等待。
编译后结果:在C:\Boost下生成两个文件夹include和lib,在D:\ boost_1_32_0中则多了一个bin目录。
6、应用boost
a) 设置boost库
如果你使用的IDE(比如Microsoft Visual Studio或者MinGW Developer Studio(http://petra.hos.u-szeged.hu/~aking/www.parinya.ca/download/MinGWStudioFullSetupPlus-2.05.exe )),你可以在IDE的include和lib路径中直接设置boost库的位置。如果你用的是命令行工具,对于复杂的项目构建估计你需要写你自己的Makefile了。
b) 使用boost的例子
//HelloBoost.cpp
#include <iostream>
#include <string>
#include <boost/tokenizer.hpp>
using namespace std;
using namespace boost;
int main()
{
string s = "Hello Boost,This is a test ";
tokenizer <> tok(s);
for(tokenizer <> ::iterator beg=tok.begin(); beg != tok.end(); ++beg)
{
cout < < *beg < < "\n ";
}
}
//Compile: g++ -o HelloBoost.exe HelloBoost.cpp -I "C:\Boost\include\boost-1_32 "
//output:
Hello
Boost
This
is
a
test
[解决办法]
1.34改了bjam格式了
要bjam -toolset=gcc
[解决办法]
我编译的时候没加--prefix=E:\Boost install,就直接过了。
[解决办法]
搜索一下*.a,*.dll,不是举手之牢嘛。
有兴趣就认真研究bjam --help。
[解决办法]
在Windows下面我把bjam.exe拷到boost的目录下,然后运行bjam.exe,提示几个warning后出现一个...found 1 target...然后就停掉了,不接着编译了,怎么回事啊,请高人指点
[解决办法]
boost里有N个库编不出来是很正常的,你想用的编译出来了就可以了。
[解决办法]
没啥好遗憾的,你不用的库编译过了也没意义,纯心理安慰。