4

我刚刚下载了适用于 Windows 8 64 位的 Visual Studio 2012 RC。我尝试编译 boost 库(版本 1.51),但是当我在 Visual Studio 提示命令中进行编译时,出现错误。我在帖子末尾发布了 bootstrap.log。我想知道在 Windows 8 Release Candidate 上构建 VS2012RC 的正确程序是什么。

提前感谢您的回复。

###
### Using 'vc11' toolset.
###

C:\Users\XXX\Downloads\boost_1_51_0\boost_1_51_0\tools\build\v2\engine>if
exist bootstrap rd /S /Q bootstrap

C:\Users\XXX\Downloads\boost_1_51_0\boost_1_51_0\tools\build\v2\engine>md
bootstrap

C:\Users\XXX\Downloads\boost_1_51_0\boost_1_51_0\tools\build\v2\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 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
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
Generazione del codice in corso...
Compilazione in corso...
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
set.c
path.c
Generazione del codice in corso...
Compilazione in corso...
regex.c
property-set.c
sequence.c
order.c
Generazione del codice in corso...

C:\Users\XXX\Downloads\boost_1_51_0\boost_1_51_0\tools\build\v2\engine>.\bootstrap    \jam0
-f build.jam --toolset=vc11 "--toolset-root=C:\Program Files
(x86)\Microsoft Visual Studio 11.0\Common7\Tools\..\..\VC\ " clean
...found 1 target...
...updating 1 target...
...updated 1 target...

C:\Users\XXX\Downloads\boost_1_51_0\boost_1_51_0\tools\build\v2\engine>.\bootstrap\jam0
-f build.jam --toolset=vc11 "--toolset-root=C:\Program Files
(x86)\Microsoft Visual Studio 11.0\Common7\Tools\..\..\VC\ "
don't know how to make command.c
don't know how to make compile.c
don't know how to make constants.c
don't know how to make debug.c
don't know how to make function.c
don't know how to make glob.c
don't know how to make hash.c
don't know how to make hcache.c
don't know how to make headers.c
don't know how to make hdrmacro.c
don't know how to make jam.c
don't know how to make jambase.c
don't know how to make jamgram.c
don't know how to make lists.c
don't know how to make make.c
don't know how to make make1.c
don't know how to make mem.c
don't know how to make object.c
don't know how to make option.c
don't know how to make output.c
don't know how to make parse.c
don't know how to make regexp.c
don't know how to make rules.c
don't know how to make scan.c
don't know how to make search.c
don't know how to make subst.c
don't know how to make w32_getreg.c
don't know how to make timestamp.c
don't know how to make variable.c
don't know how to make modules.c
don't know how to make strings.c
don't know how to make filesys.c
don't know how to make builtins.c
don't know how to make pwd.c
don't know how to make class.c
don't know how to make native.c
don't know how to make md5.c
don't know how to make modules/set.c
don't know how to make modules/path.c
don't know how to make modules/regex.c
don't know how to make modules/property-set.c
don't know how to make modules/sequence.c
don't know how to make modules/order.c
don't know how to make execnt.c
don't know how to make filent.c
don't know how to make pathunix.c
...found 50 targets...
...updating 1 target...
...can't find 46 targets...
...can't make 2 targets...
[MKDIR] bin.ntx86_64
...skipped b2.exe for lack of command.c...
...skipped bjam.exe for lack of b2.exe...
...skipped 2 targets...
...updated 1 target...
4

4 回答 4

15

解决方法:

  1. 将目录更改为 boost_1_51_0-x64\tools\build\v2
  2. 执行 bootstrap.bat(不是从本机 x64 命令提示符 - 只需双击它)
  3. 将 b2.exe 复制回 boost_1_51_0-x64 目录
  4. 将目录更改为 boost_1_51_0-x64
  5. 执行 b2

我编写了一个名为 BlueGo 的工具,它会自动下载 boost 1.51.0 并使用 VS2012 x64 构建它:http: //vertexwahn.de/

于 2012-09-03T18:08:52.157 回答
7

版本 1.52 刚刚发布,现在包括对 Visual Studio 2012 (VC11) 的支持 如果您需要早期版本的 Boost,您可以随时将项目使用的工具集更改为 VC10。

于 2012-11-14T23:27:28.660 回答
5

不是真正的答案,但您可以在此处下载使用 VC11 RC 构建的预构建 Boost 二进制文件。基于此页面,在 VC11 上构建 Boost 似乎存在一些问题(请参阅此线程

于 2012-08-27T21:02:23.100 回答
1

对于 windows8,请查看此补丁https://svn.boost.org/trac/boost/attachment/ticket/7243/boost_1_51_0_win8_x64_compat.patch

于 2013-04-02T16:04:15.993 回答