问题标签 [bjam]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
19304 浏览

boost - Trying to build Boost: I cannot get bjam

I would like to build boost using two different compilers, MinGW and Visual C++ 2010 Express, using bjam:

The problem is that I do not have bjam. I could not find it in the Boost directory, and the one I downloaded from somewhere else was a wrong version.

I should be able to build it from the code in Boost, but how? I read that I must launch build.bat from the BOOST_ROOT/tools/jam/src directory, but that directory does not exist !

Thank you!


  • Platform: Windows7
  • Compilers: MinGW and Visual C++ 2010 Express

Update:

I have been able to get bjam with: bootstrap.bat gcc
Then, launching bjam with the previous parameters, I only get libraries for MinGW (.dll and .a).
This is an extract of the error messages I get with regard to Visual C++ 10:

Trying to use:
bootstrap.bat vc100
I get the error: "Unknown toolset: vc100"

With either:
bootstrap.bat vc10
or:
bootstrap.bat mingw
I get: "\Microsoft was unexpected at this time."

Changing project-config.jam did not help.

So, I did a big step forward, but vc10 is not working, yet...

0 投票
1 回答
427 浏览

c++ - 使用 bjam 对 m68k 进行交叉编译提升

使用文档,我运行:

这给出了以下错误:

似乎用户配置被忽略了,尽管它被读取了(在 中查看--debug-configuration

0 投票
1 回答
248 浏览

linux - Linux 中的 Boost 1.48 编译 - 使用 Bjam 在输出文件中获取编译器名称?

我正在尝试在 CentOS 5.6 中编译 Boost 1.48。我需要文件采用这种格式:

我正在用这个 bjam 标志编译:

但它仍然没有gcc在名称中添加前缀。我怎样才能解决这个问题?

0 投票
2 回答
194 浏览

python - 使用 distutils 链接两个模块

我最近在使用几个已编译的 C++ 模块时发现了一个问题,并想重新表述这个问题。

我有两个模块“mod1”和“mod2”。它们在我的 setup.py 中编译为两个不同的“ext_modules”,如下所示:

但在内部,“mod2.hpp”包含“mod1.hpp”,因为第一个模块定义了第二个模块使用的东西。

编辑:这将编译得很好,但是:

这里,“Parent”是在 mod1 中定义并在 mod2 中使用的类的名称。

EDIT2:另一个我不明白的奇怪行为:

在这里,首先导入 mod2 失败。但是如果我在导入 mod1 后尝试 agin,我会得到一个段错误。


这两个模块都是作为共享库构建的——但如果我没记错的话,mod2 需要链接到 mod1 才能工作,因为它需要在 mod1 中定义的东西。是否可以使用 setuptools/distribute 定义这样的依赖关系?

就像是 :

从我的各种阅读来看,似乎可以使用 boost 的 bjam 实用程序来做这样的事情——不幸的是,我没有设法在我的系统上使用它(甚至编译示例)。

我尝试过的事情:

  • 将“mod1.cpp”添加到 mod2 的源代码中。它可以工作(有点:我必须在 mod2 之前导入 mod1 才能使其工作)但我失去了将模块作为共享对象的兴趣。

解决方法:

  • 将 mod1 作为 mod2 中的常规 python 模块导入,但这会在我的 C++ 代码中添加额外的 python 层

你怎么看 ?

0 投票
1 回答
731 浏览

c++ - 为什么 boost.log 在 Windows XP 上会崩溃?

我正在使用 boost.log。除了实际获取和构建它的大量agro之外,它在 Windows 7 和 Vista 上运行良好。

我现在正尝试在 Windows XP 上使用该应用程序,但 boost.log 出现未处理的异常 ( Access violaton reading location 0x00000000)。

这发生在log:mt_nt5::sources::aux::set_severity_level尝试设置名为 的静态全局变量的方法中g_SeverityLevel

我找到了一份建议使用BOOST_LOG_NO_COMPILER_TLS. 我试过这个,但它没有用。

我对此进行了进一步阅读,问题似乎出在声明为的全局变量周围__declspec(thread),这使得它成为线程静态的。这只是 Vista 之前的操作系统的问题。

我静态链接到 boost.log,所以我不知道为什么我的预处理器BOOST_LOG_NO_COMPILER_TLS没有被识别。

我错过了什么吗?

更新:

无论我在使用 构建库时做什么bjam,我的BOOST_LOG_NO_COMPILER_TLS标志都不会被识别。我正在建造这样的:

我对比了stage有无这个flag构建后文件夹中输出的内容,内容是一样的!

所以,一个相关的问题现在可能是: 我是否正确使用了 bjam 命令行?

0 投票
1 回答
1550 浏览

c++ - 为什么 bjam 似乎忽略了我的论点?

我正在尝试使用 bjam 构建 boost.lib,但无论我做什么,我都无法让它识别我的BOOST_LOG_NO_COMPILER_TLS标志。我正在建造这样的:

为了验证它是否忽略了这个标志,我编译了有和没有这个标志,并使用 Beyond Compare 比较了 stage 文件夹中生成的每个文件。

所有的 lib 文件都是相同的。如果 bjam 认可我的define领域,我会期待差异。

我是boost和bjam的新手,所以我做错了吗?

0 投票
1 回答
697 浏览

c++ - 如何在多个类中使用库而不会出现“多个定义”错误

我正在开始一个新的 c++ 项目,我想使用 Boost.Build / bjam。

我收到“多重定义”错误,因为我想可能是 jam 文件没有正确写入,或者我没有正确包含标题,或者可能是库写得不好,我没有调查过。

main.cpp 使用 libA。rest.cpp 使用 libA。

libA 是一个头文件库。因此,我需要在编译器的 main.cpp 和 rest.cpp 中包含 libA 的标头,抱怨命名空间等...

我在 debian 上使用 gcc。

这是我的果酱文件:

Jamroot.jam

Jamfile.jam

我得到的错误是重复的:

0 投票
1 回答
8283 浏览

boost - Boost:bjam 如何构造一个库名?

我正在查看 jam 文件,库的名称是如何构建的。例子:libboost_log-mgw46-mt-1_48.dll

我想忽略最后一部分,如何将 -o 参数与我构造的名称一起传递给链接器。我的版本很少,在一个大项目中的链接迫使我对项目文件进行更改,这是很多地方。

我的愿望是获得 libboost_log.dll。我只是重命名了,但是在执行程序时它说找不到 libboost_log-mgw46-mt-1_48.dll文件。

0 投票
3 回答
24288 浏览

c++ - 同时构建 32 位和 64 位库以进行提升?

选项“--address-model=32,64”会构建 32 和 64 库,还是必须进行两个单独的构建?

0 投票
2 回答
374 浏览

unit-testing - 提升 1_48 什么 bjam?bjam 版本不匹配的 Boost 错误

请帮忙,我有 WindowsXP,我已经从https://sourceforge.net/projects/boost/files/boost-jam/下载了 3.1.18 bjam,因为它看起来像是最新的(但是是 2010 年?)因为我可以'从 QuantLib 运行示例测试,错误是:找不到 libboost_unit_test_framework lib

所以我运行了这个 bjam,但它说:不匹配的 Boost 版本。构建引擎和核心。是 03.1.18 ,核心是 2011.04-svn

我该怎么办?请帮忙!