我正在尝试构建boost库,作为我想尝试的开源项目的一部分。
C:\boost_1_55_0>bootstrap.bat gcc
Building Boost.Build engine
Bootstrapping is done. To build, run:
.\b2
[snip]
C:\boost_1_55_0>b2.exe --toolset=gcc
Unable to load Boost.Build: could not find "boost-build.jam"
---------------------------------------------------------------
BOOST_ROOT must be set, either in the environment, or
on the command-line with -sBOOST_ROOT=..., to the root
of the boost installation.
Attempted search from C:\boost_1_55_0 up to the root
at C:/share/boost-build
and in these directories from BOOST_BUILD_PATH and BOOST_ROOT: c:/boost_1_55_0.
Please consult the documentation at 'http://www.boost.org'.
C:\boost_1_55_0>dir *.jam
[snip]
Directory of C:\boost_1_55_0
09/21/2013 01:17 PM 866 boost-build.jam
09/21/2013 01:17 PM 18,083 boostcpp.jam
12/16/2013 03:36 PM 76 project-config.jam
3 File(s) 19,025 bytes
0 Dir(s) 34,868,432,896 bytes free
工具集是MinGW / gcc,它正确地在我的%PATH%上。
所以基本上,不知何故,boost没有看到当前目录中的boost-build.jam
文件。
请注意,我已正确设置BOOST_ROOT
:
C:\boost_1_55_0>echo %BOOST_ROOT%
c:/boost_1_55_0
我在这里结束了我的智慧。我尝试了不同的后向和前向斜线排列。此外,来自b2
的错误消息包含路径C:/share/boost-build
,我有没有的想法来自哪里。我已经对整个代码库进行了全面搜索,并且看不到可能在任何地方指定它的配置文件。
所以我可能需要Boost.Build?
无论如何,按照here的说明构建Boost.Build会产生完全相同的问题:
C:\boost_1_55_0\tools\build\v2>echo %BOOST_ROOT%
C:/boost_1_55_0
C:\boost_1_55_0\tools\build\v2>bootstrap.bat gcc
Bootstrapping the build engine
Bootstrapping is done. To build, run:
.\b2 --prefix=DIR install
C:\boost_1_55_0\tools\build\v2>b2 --toolset=gcc --prefix=c:/pathutils install
Unable to load Boost.Build: could not find "boost-build.jam"
---------------------------------------------------------------
BOOST_ROOT must be set, either in the environment, or
on the command-line with -sBOOST_ROOT=..., to the root
of the boost installation.
Attempted search from C:\boost_1_55_0\tools\build\v2 up to the root
at C:/boost_1_55_0/tools/build/share/boost-build
and in these directories from BOOST_BUILD_PATH and BOOST_ROOT: C:\boost_1_55_0\tools\build\v2\test\startup\boost-root\build, C:/boost_1_55_0.
Please consult the documentation at 'http://www.boost.org'.
答案 0 :(得分:1)
它不是在寻找你的Jamfile。它正在寻找boost.build tools子目录,它包含支持的jam脚本。在linux上,默认情况下这将是“/ usr / share / boost-build /”,在Windows上你可能需要设置BOOST_BUILD_PATH
以指向安装boost.build支持脚本的地方:
http://www.boost.org/doc/libs/1_55_0/doc/html/bbv2/reference.html
答案 1 :(得分:1)
好吧,我只能假设我的计算机的%PATH%
中的某些内容会以某种方式破坏 。
我在一个干净的VM中做了相同的设置过程,它似乎编译得很好。
我不知道具体是什么问题。
答案 2 :(得分:0)
这看起来像是一个很老的问题,但是如果它可以帮助任何人,我也会遇到同样的问题,这是因为我在/ boost目录中,但需要在/ boost / boost中。当我将目录更改为子目录并运行./bootstrap后跟./b2标头时,它运行良好。
当我在/ boost目录中但您去那里时,。/ bootstrap确实起作用有点困惑。
答案 3 :(得分:0)
boost 的二进制构建根本不起作用,尝试构建也是徒劳的。
<块引用>5.1 从源代码简化构建
如果您希望使用 Visual C++ 从源代码构建,您可以使用一个简单的 本节中描述的构建过程。打开命令提示符并 将当前目录更改为 Boost 根目录。然后,键入 以下命令:
引导程序 .\b2
由于原始问题中的错误,这不起作用。
<块引用>5.2.1 安装 Boost.Build
Boost.Build 是一个基于文本的系统,用于开发、测试和 安装软件。首先,您需要构建并安装它。去做 这个:
Go to the directory tools\build\v2\.
Run bootstrap.bat
Run b2 install --prefix=PREFIX where PREFIX is the directory where you want Boost.Build to be installed
Add PREFIX\bin to your PATH environment variable.
由于以下错误,这也不起作用:
Unable to load B2: could not find 'boost-build.jam'
---------------------------------------------------
Attempted search from 'C:sources\boost_1_75_0\tools\build' up to the root at 'C:sources\boost_1_75_0\tools\build\b2.EXE'
Please consult the documentation at 'https://boostorg.github.io/build/'.
上面错误中的地址没有说明如何使用 B2。
设计必须是天才,但直到发现使用与 b2.exe 相同目录中的现有文件应该被视为安全默认值之前,我们这些低级开发人员都是 SOL。