0

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

1) 我下载并提取 boost 到:d:\boost_1_53_0

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

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

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 中相同的内容。问题出在哪里?谢谢

4

2 回答 2

2

您必须从另一个来源(不是 boost tar 发行版附带的那个)安装了 boost.build 包。

如果您想摆脱警告,您需要从与您的 boost 发行版相同的包中安装 boost-build。为了确保它们都是相同的并且是最新的,只需从这里下载 boost并解压缩它。完成后按照 boost 的安装说明(基本上是bootstrapthen b2),进入 tools/build/v2 并执行bootstrap.shand b2。然后你会生成这个boost版本对应的b2和bjam文件,不会再有这个警告了。

于 2013-09-21T23:24:57.133 回答
0

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

于 2013-02-26T20:25:39.677 回答