问题标签 [boost-build]
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.
linux - 使用 bjam 构建和使用共享库
在 ubuntu 上使用 bjam,我正在构建一个 c++ 共享库并尝试在可执行文件中使用它。我必须构建为共享,因为它不会链接为静态(出现许多未定义的引用)。没关系。
两个相关问题:
1)使用 Jamfiles 的层次结构,我的 exe 项目(testServerHub)依赖于共享库(pythonManager)。这是 exe 的 Jamfile:
这是我的 lib Jamfile:
如果我运行“bjam pythonManager”,pythonManager 共享库将被构建并复制到我的项目 lib 文件夹中(通过最终的安装命令)。但是,如果我运行“bjam test”,则 testServerHub 和 pythonManager 都已构建,但 libpythonManager.so 不会复制到项目 lib 文件夹 - 安装命令不会运行!
2) 好的,作为临时解决方法,我先构建 libpythonManager.so,然后构建 testServerHub 可执行文件。编译和链接。在运行时,可执行文件抱怨找不到 libpythonManager.so。由于运行时链接器不知道我的项目 lib 文件夹,这并不令人意外。我如何告诉它在某个目录中查找共享库?或者如果安装命令对依赖库构建没有影响,我如何将 libpythonManager.so 安装到 /usr/local/lib 中?
非常感谢
硅
linux - Boost::Python:在构建 python-extension 时将自定义参数传递给 gcc
我需要传递-Wl,-rpath,\$$ORIGIN/lib/
给 g++ 的链接器(原因)。有没有办法在 Jamroot 文件中传递这个参数?
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 中,我已经执行了以下操作:
有任何想法吗?
c++ - 在 Sunos 上编译提升
我刚刚开始使用 boost 库。对于我们的一个项目,我想使用 sun 编译器在 Sun OS 上编译 Boost 1.39.0。但是,如果我使用http://www.boost.org/doc/libs/1_39_0/more/getting_started/unix-variants.html中提到的步骤编译它,则并非所有目标都被编译。有人可以提供有助于在 Sun os 上编译它的资源吗?是否有任何单独的指令集用于在 Sun OS 上进行编译
bjam - 如何在 bjam 中创建新变体
我试过阅读文档,但它相当难以理解,所以我希望有人可能有一个简单的答案。我想基于“调试”定义一个新的“变体”,它只是将一些宏定义添加到编译器命令行,例如“-DSOMEMACRO”。我认为我可以将其作为调试的“子变体”来执行,或者只是定义一个复制“调试”的新变体,但我什至不确定在哪里执行此操作。看起来 $BOOST_BUILD_DIR/build 中的 feature.jam 可能是这个地方。也许我真正想要的只是一个新的“功能”,但我仍然不清楚我需要做什么以及在哪里做,而且我不知道“功能”是否允许我将构建产品定向到不同的目录到“调试”构建。
任何建议将不胜感激。(如果您想知道,我必须使用 bjam,因为它已被采纳为我们的公司标准。)
c++ - 如何解码 boost 库命名?
我试图在 boost 库名称中找出这gd
意味着,我只发现另外两个人在寻找相同的东西。
我想它应该是一个有明确记录的地方,我想找到它。
mt
- 多头,得到它bjam threading=multi
s
-bjam runtime-link=static
g
- 使用标准和运行时支持库的调试版本。什么bjam开关???d
- 调试bjam variant=debug
更新
如何控制bjam
控制上述变体的开关?事实上,我唯一无法识别的是g
.
bjam - 是否可以使用 bjam 进行源外构建?
由于配额限制,我真的需要构建一个我正在使用所有临时文件的项目,并在单独的目录中构建产品(在我的情况下/tmp/somewhere
)。
我习惯用 CMake 来做这个bjam
,如果可以的话,怎么做?
bjam - bjam glob“排除模式”问题
根据文档,bjam 的 glob 运算符接受第二个参数,该参数指定要排除的模式,如下所示:
然而,bjam 给了我一个抱怨第二个参数的错误。可能是我的 bjam 版本太旧了。有谁知道这个“排除”功能是在哪个版本添加的?我正在使用 3.1.17。
boost - 如何更改增强版本以使用 cxxflags=-O2?
在我的机器上,variant=release 的 cxxflags 默认为 -O3。
我需要将其更改为-O2。请告知如何进行。
如果有人可以就此提出建议,我也可以定义一个新的变体。
boost-build - 是否可以使用相同的命令安装库的调试和发布变体?
我正在使用以下 Jamfile(在目录 /home/morpheus/base/CDef 中):
lib CDef:[glob *.cpp]:静态;
安装libCDef : CDef : LIB "/home/morpheus/base_install/lib" : 发布;
安装_libCDef_D:CDef:LIB“/home/morpheus/base_install/libdebug”:调试;
我想知道是否可以将两条安装行更改为同时具有调试和发布指令的安装行。
还要使用不同目录(/home/morpheus/FSLR)中不同 Jamfile 中的库,我使用以下 Jamfile 来构建 exe callFSLR:
lib CDef :: 释放 CDef /home/morpheus/base_install/lib ; lib CDef :: 调试 CDef /home/morpheus/base_install/libdebug ;
exe callFSLR:call_FSLR.cpp CDef::debug release;
安装 install-bin : callFSLR : "/home/morpheus/base_install/bin" 发布;
我相信使用“use-project”来引用 Jamfile /home/morpheus/base/CDef/Jamfile 中的 CDef 可能是可取的?