在当前目录中没有看到jamfile

时间:2013-12-16 23:41:38

标签: c++ boost boost-build

我正在尝试构建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'.

4 个答案:

答案 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。