问题标签 [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 投票
2 回答
1591 浏览

c++ - Boost、bjam 和符号链接

我用 bjam 生成了一些 Boost 库,我得到了很多符号链接。

对于 date_time :

libboost_date_time-gcc41-mt-1_39.a

libboost_date_time-gcc41-mt-1_39.so -> libboost_date_time-gcc41-mt-1_39.so.1.39.0

libboost_date_time-gcc41-mt-1_39.so.1.39.0

libboost_date_time-gcc41-mt.a -> libboost_date_time-gcc41-mt-1_39.a

libboost_date_time-gcc41-mt.so -> libboost_date_time-gcc41-mt-1_39.so.1.39.0

为什么我不直接得到 .a 和 .so ?为什么这 3 个符号链接?为什么原始文件的 .so 名称如此复杂,而发布版本却被提及两次?

是不是有可能只有:

libboost_date_time-gcc41-mt-1_39.a libboost_date_time-gcc41-mt-1_39.so

感谢帮助。我不知道如何处理这些符号链接。

注意:我是 Linux 的新手。

0 投票
2 回答
497 浏览

linux - Boost::Python:在构建 python-extension 时将自定义参数传递给 gcc

我需要传递-Wl,-rpath,\$$ORIGIN/lib/给 g++ 的链接器(原因)。有没有办法在 Jamroot 文件中传递这个参数?

0 投票
1 回答
175 浏览

boost - 是否可以从 bjam 生成 .h 宏文件?

我需要动态生成一些宏到 C 程序可以包含的 .h 配置文件中,以便检查启用了哪些选项,其方式类似于 CMake 的 CONFIGURE_FILE 宏。但是在查看文档和网络之后,我找不到有用的东西。是否可以从 bjam 生成这样的文件并正确处理依赖关系?如果是这样,你会怎么做?

0 投票
1 回答
1150 浏览

boost - 在基于 bjam 的项目中链接到 boost_filesystem

我正在尝试为我自己的项目设置 Boost.Build,该项目引用 libboost_filesystem。

当我跑

我得到以下输出:

我真的很感谢一些帮助解决这个问题......

~/user-config.jam

~/src/libdoas/Jamroot

~/src/libdoas/src/lib/Jamfile

~/src/libdoas/src/tools/Jamfile

在目录 /home/andreas/lib/build/boost_1_42_0 中,我已经执行了以下操作:

有任何想法吗?

0 投票
2 回答
1069 浏览

bjam - 您如何在 BJAM 中创建规则?

我想用 boost 不支持的特定编译器编译一个文件。我制定了一个规则:

现在这段代码将文件构建到 Jamroot 目录中(显然)。但是,我希望它在常规目标路径中构建(bin/gcc-4.4/release/threading-multi/...)。那么如何在 my_rule 中获取/生成标准路径?

先感谢您。

0 投票
1 回答
1314 浏览

boost - 使用 GumROS 在 Gumstix Overo 上使用的交叉编译 Boost

我正在尝试交叉编译 boost 以与 Gumstix Overo 上的 ROS 框架一起使用。我一直按照此处发布的说明进行操作(在需要时修改脚本),但是我遇到了 bjam 无法正确编译 boost 的问题。

我叫 bjam 如下:

我已经检查了用户配置以确保一切都是洁净的,并确保 GPP_PATH 是正确的。但是,当我运行脚本时,我遇到了编译错误,例如:

正在读取包列表... 完成 构建依赖关系树 正在读取状态信息... 完成 bjam 已经是最新版本。0 升级,0 新安装,0 删除,5 未升级。...耐心... ...找到 14370 个目标... ...更新 14 个目标... gcc.compile.c++ bin.v2/libs/date_time/build/gcc-4.3.3/release/threading- multi/gregorian/greg_month.o g++:尝试执行“cc1plus”时出错:execvp:没有这样的文件或目录

-ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I"。" -c -o "bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_month.o" "libs/date_time/src/gregorian/greg_month.cpp"

...失败 gcc.compile.c++ bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_month.o ... gcc.compile.c++ bin.v2/libs/ date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_weekday.o g++:尝试执行“cc1plus”时出错:execvp:没有这样的文件或目录

-ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall -pthread -fPIC -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DDATE_TIME_INLINE -DNDEBUG -I"。" -c -o "bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_weekday.o" "libs/date_time/src/gregorian/greg_weekday.cpp"

...失败 gcc.compile.c++ bin.v2/libs/date_time/build/gcc-4.3.3/release/threading-multi/gregorian/greg_weekday.o ... gcc.compile.c++ bin.v2/libs/ date_time/build/gcc-4.3.3/release/threading-multi/gregorian/date_generators.o g++:尝试执行“cc1plus”时出错:execvp:没有这样的文件或目录

ETC...

作为参考,我正在使用本教程来帮助我。http://www.ros.org/wiki/gumros

0 投票
2 回答
2801 浏览

boost - Boost Jam 与 Jam

我最近在 Linux 中构建了 Boost 库,并注意到该包需要一个名为 bjam 的可执行文件才能进行构建。bjam 和jam有关系吗?如果它与果酱有关,它们是否以某种方式扩展(甚至是哑巴)bjam?它仅用于构建 Boost 库还是通用构建工具?

0 投票
1 回答
97 浏览

boost - 新版本的 BJam 是否支持与旧版本的 Boost 向后兼容?

我正在尝试使用与 1.42 版 Boost 捆绑的最新版 bjam 构建 1.35 版 Boost。这会对构建结果产生不利影响吗?这甚至可能吗?

我尝试这样做的原因是因为最新版本的 BJam 支持命令行选项,这些选项不包含在与 boost 1.35 捆绑在一起的旧版本 BJam 中。

0 投票
1 回答
2232 浏览

bjam - 如何在 bjam 中创建新变体

我试过阅读文档,但它相当难以理解,所以我希望有人可能有一个简单的答案。我想基于“调试”定义一个新的“变体”,它只是将一些宏定义添加到编译器命令行,例如“-DSOMEMACRO”。我认为我可以将其作为调试的“子变体”来执行,或者只是定义一个复制“调试”的新变体,但我什至不确定在哪里执行此操作。看起来 $BOOST_BUILD_DIR/build 中的 feature.jam 可能是这个地方。也许我真正想要的只是一个新的“功能”,但我仍然不清楚我需要做什么以及在哪里做,而且我不知道“功能”是否允许我将构建产品定向到不同的目录到“调试”构建。

任何建议将不胜感激。(如果您想知道,我必须使用 bjam,因为它已被采纳为我们的公司标准。)

0 投票
3 回答
25513 浏览

c++ - 如何解码 boost 库命名?

我试图在 boost 库名称中找出这gd意味着,我只发现另外两个人在寻找相同的东西。

我想它应该是一个有明确记录的地方,我想找到它。

  • mt- 多头,得到它bjam threading=multi
  • s-bjam runtime-link=static
  • g- 使用标准和运行时支持库的调试版本。什么bjam开关???
  • d- 调试bjam variant=debug

更新

如何控制bjam控制上述变体的开关?事实上,我唯一无法识别的是g.