使用CodeBlocks在Windows上设置Boost

时间:2013-02-14 14:55:16

标签: c++ windows boost codeblocks bjam

我想使用Boost Filesystem库,我正在尝试在我的Windows机器上安装Boost。我正在使用CodeBolcks进行开发。我做了以下:

1)我下载并解压缩到:d:\ boost_1_53_0

2)我下载并解压缩可执行文件到:d:\ boost-jam-3.1.18-1-ntx86

3)我在我的PATH环境变量中添加了“d:\ boost-jam-3.1.18-1-ntx86”。

4)我转到“d:\ boost_1_53_0”,然后运行以下命令:

bjam --toolset=gcc "--prefix=D:\Program Files\CodeBlocks" install

我得到以下输出:

warning: mismatched versions of Boost.Build engine and core
warning: Boost.Build engine (bjam) is 03.1.18
warning: Boost.Build core (at D:/boost_1_53_0/tools/build/v2) is 2011.12-svn
D:/boost_1_53_0/tools/build/v2/util\path.jam:476: in path.makedirs
rule MAKEDIR unknown in module path.
D:/boost_1_53_0/tools/build/v2/build\configure.jam:190: in configure.set-log-file
D:/boost_1_53_0/tools/build/v2\build-system.jam:725: in load
D:\boost_1_53_0\tools\build\v2/kernel\modules.jam:283: in import
D:\boost_1_53_0\tools\build\v2\kernel\bootstrap.jam:142: in boost-build
D:\boost_1_53_0\boost-build.jam:17: in module scope

有人知道如何解决这个问题吗?

由于

更新1:

根据您的建议,我尝试使用Boost文件夹中的bootstrap.bat。但是,我收到了以下输出:

D:\boost_1_53_0>bootstrap.bat gcc
Building Boost.Build engine

Failed to build Boost.Build engine.
Please consult bootstrap.log for furter diagnostics.

You can try to obtain a prebuilt binary from

   http://sf.net/project/showfiles.php?group_id=7586&package_id=72941

Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.

bootstrap.log文件包含以下内容:

###
### Using 'gcc' toolset.
###

D:\boost_1_53_0\tools\build\v2\engine>if exist bootstrap rd /S /Q bootstrap 

D:\boost_1_53_0\tools\build\v2\engine>md bootstrap 

D:\boost_1_53_0\tools\build\v2\engine>gcc -DNT -o bootstrap\jam0.exe  command.c compile.c constants.c debug.c execnt.c filent.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 pathunix.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 pwd.c class.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 

D:\boost_1_53_0\tools\build\v2\engine>.\bootstrap\jam0 -f build.jam --toolset=gcc "--toolset-root= "  clean 
...found 1 target...
...updating 1 target...
...updated 1 target...

D:\boost_1_53_0\tools\build\v2\engine>.\bootstrap\jam0 -f build.jam --toolset=gcc "--toolset-root= "  
...found 50 targets...
...updating 2 targets...
[COMPILE] bin.ntx86\b2.exe

"gcc"   -o bin.ntx86\b2.exe "-DNDEBUG" "-DOPT_HEADER_CACHE_EXT" "-DOPT_GRAPH_DEBUG_EXT" "-DOPT_SEMAPHORE" "-DOPT_AT_FILES" "-DOPT_DEBUG_PROFILE" "-DOPT_FIX_TARGET_VARIABLES_EXT" "-DOPT_IMPROVED_PATIENCE_EXT" "-DNT" "-DYYSTACKSIZE=5000" "-pedantic" "-fno-strict-aliasing" "-s" "-O3" "-Wno-long-long" "command.c" "compile.c" "constants.c" "debug.c" "function.c" "glob.c" "hash.c" "hcache.c" "headers.c" "hdrmacro.c" "jam.c" "jambase.c" "jamgram.c" "lists.c" "make.c" "make1.c" "mem.c" "object.c" "option.c" "output.c" "parse.c" "regexp.c" "rules.c" "scan.c" "search.c" "subst.c" "w32_getreg.c" "timestamp.c" "variable.c" "modules.c" "strings.c" "filesys.c" "builtins.c" "pwd.c" "class.c" "native.c" "md5.c" "modules/set.c" "modules/path.c" "modules/regex.c" "modules/property-set.c" "modules/sequence.c" "modules/order.c" "execnt.c" "filent.c" "pathunix.c" 

...failed [COMPILE] bin.ntx86\b2.exe...
...removing bin.ntx86\b2.exe
...skipped bjam.exe for lack of b2.exe...
...failed updating 1 target...
...skipped 1 target...

你有什么建议?

更新2:

D:\boost_1_53_0\tools\build\v2>bootstrap.bat gcc
Bootstrapping the build engine

Failed to bootstrap the build engine
Please consult bootstrap.log for furter diagnostics.

bootstrap.log文件包含与UPDATE 1相同的内容。问题出在哪里?感谢

2 个答案:

答案 0 :(得分:2)

您必须已从其他源(不是boost tar分发附带的源)安装了boost.build软件包。

如果您想摆脱警告,则需要在与boost分发相同的软件包中安装boost-build。要确保它们完全相同并保持最新,只需从here下载提升并解压缩即可。完成后,按照安装说明(基本上bootstrap然后b2),进入tools / build / v2并执行bootstrap.shb2。然后你将生成对应于此boost版本的b2和bjam文件,并且不再有此警告。

答案 1 :(得分:0)

通过右键单击我的计算机和属性,将%PATH%变量设置为'gcc.exe'驻留在envs变量中的位置,然后重新启动提示并再次运行。