问题标签 [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.
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...
c++ - 使用 bjam 对 m68k 进行交叉编译提升
使用文档,我运行:
这给出了以下错误:
似乎用户配置被忽略了,尽管它被读取了(在 中查看--debug-configuration
)
linux - Linux 中的 Boost 1.48 编译 - 使用 Bjam 在输出文件中获取编译器名称?
我正在尝试在 CentOS 5.6 中编译 Boost 1.48。我需要文件采用这种格式:
我正在用这个 bjam 标志编译:
但它仍然没有gcc
在名称中添加前缀。我怎样才能解决这个问题?
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 层
你怎么看 ?
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 命令行?
c++ - 为什么 bjam 似乎忽略了我的论点?
我正在尝试使用 bjam 构建 boost.lib,但无论我做什么,我都无法让它识别我的BOOST_LOG_NO_COMPILER_TLS
标志。我正在建造这样的:
为了验证它是否忽略了这个标志,我编译了有和没有这个标志,并使用 Beyond Compare 比较了 stage 文件夹中生成的每个文件。
所有的 lib 文件都是相同的。如果 bjam 认可我的define
领域,我会期待差异。
我是boost和bjam的新手,所以我做错了吗?
c++ - 如何在多个类中使用库而不会出现“多个定义”错误
我正在开始一个新的 c++ 项目,我想使用 Boost.Build / bjam。
我收到“多重定义”错误,因为我想可能是 jam 文件没有正确写入,或者我没有正确包含标题,或者可能是库写得不好,我没有调查过。
main.cpp 使用 libA。rest.cpp 使用 libA。
libA 是一个头文件库。因此,我需要在编译器的 main.cpp 和 rest.cpp 中包含 libA 的标头,抱怨命名空间等...
我在 debian 上使用 gcc。
这是我的果酱文件:
Jamroot.jam
Jamfile.jam
我得到的错误是重复的:
boost - Boost:bjam 如何构造一个库名?
我正在查看 jam 文件,库的名称是如何构建的。例子:libboost_log-mgw46-mt-1_48.dll
我想忽略最后一部分,如何将 -o 参数与我构造的名称一起传递给链接器。我的版本很少,在一个大项目中的链接迫使我对项目文件进行更改,这是很多地方。
我的愿望是获得 libboost_log.dll。我只是重命名了,但是在执行程序时它说找不到
libboost_log-mgw46-mt-1_48.dll
文件。
c++ - 同时构建 32 位和 64 位库以进行提升?
选项“--address-model=32,64”会构建 32 和 64 库,还是必须进行两个单独的构建?
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
我该怎么办?请帮忙!