问题标签 [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.
c++ - 使用 Boost.build 包含一个库
我正在使用 boost.build 编译引用库CGNS的 c++ 代码,但是在使用 boost.build 时遇到了一些困难。CGNS 编译成一个库,带有一个用于平台的文件夹,例如 [path]/LINUX 用于 linux 构建。我想在构建中包含库 [path]/LINUX/libcgns.a。我希望这是跨平台的,因此 LINUX 目录被引用用于 LINUX 构建,而 WIN 目录用于 WIN 构建(我相信这有平台条件)。
我设法包含了库头文件,但是我该如何处理库的条件包含呢?我的简单测试 Jamroot.jam,其中 main.cpp 只是 CGNS 文档中的一个示例。
另外,我想将 CGNS 库构建到我的二进制文件中(静态引用?)
macos - 如何构建 boost 1.45 通用二进制文件?
如何构建 boost 1.45 通用二进制文件?豹/雪豹?
c++ - 使用 Boost.build 自动包含目标文件
我正在使用 boost 1.46 中的最新版本的 boost-build。鉴于main.cpp
这取决于a.h
and b.h
,使用 boost-build 的自动检测依赖关系的能力,我的 jam 文件很简单
但是,如果有一个实现文件,则不会生成或链接b.cpp
该对象b.o
。我希望我的构建脚本最小化,并且每次添加新文件时都不需要调整。那么,我怎样才能自动做到这一点?
编辑以反映真实意图与我所要求的。
build - 获取 bjam 的调用堆栈的规则或为什么我要注册 2 个相同的生成器
是否有返回 bjam 中当前调用的规则?
我知道如果您调用“bjam.exe -d+10 ...”,它会打印出调用堆栈,但您自己的 ECHO 不会。
我打算做的是打印 generators.register 中的调用堆栈或generators.jam中的任何其他规则,以找出这个双重注册的位置。
目前我正在注册两个相同的生成器,但我无法找出原因。这最终导致:
错误:搜索最佳转换时发现歧义
...
成功的生成器:
xxx.link
xxx.link
...
c++ - 通过 boost 构建链接到 OS X 框架
如何使用 boost build 链接到 OS X 框架?我尝试了以下方法(在 Jamroot 中):
但是,这会产生以下错误(空间缩短):
我认为这是因为 CoreFoundation 文件没有扩展名,因此 boost-build 无法推断其类型。有没有办法明确指定文件的类型,或者以其他方式链接到 OS X 上的框架?
c++ - Boost-Build:从 linux 构建 windows 可执行文件
我有一个 c++ 代码库,我需要构建它的 windows 和 unix 版本。重要的是 Windows 可执行文件在没有安装 cygwin 或类似软件的情况下工作。哦,我正试图从 ubuntu 实现这一目标。
我一直在试图弄清楚如何让 boost-build 处理它,但到目前为止还不够。为简单起见,假设这个项目结构:
为了让 boost-build 生成 Windows 二进制文件作为第一步,我在我的主目录中创建了一个 user-config.jam 文件,其中包含以下内容:
我的 jamroot 文件如下所示:
但是当我运行时,bjam
我得到了一个 unix 可执行文件(没有扩展名),但不是一个 windows 可执行文件。使用 .exe 扩展名重命名应用程序并在 Windows 上运行不起作用。我尝试了 bjam 的各种选项,例如等bjam --toolset=gcc --target-os=windows
,bjam --toolset=gcc-mingw --target-os=windows
但注意到似乎有效..
作为记录,mingw 已正确安装并正常工作。手动调用编译器会产生正确的输出文件。
有任何想法吗?
另外,如何让 bjam 为我的 user-config.jam 文件中列出的每个工具集构建一个版本?
额外的问题:最终,我需要链接一个 boost 库和一个自定义的预构建库。我将如何为不同的目标系统指定不同的库?
更新我从http://mingw-cross-env.nongnu.org/下载了脚本,它允许我一次编译一个 mingw 以及 boost 库,所以这个问题得到了解决。我找到了一种方法让 bjam 调用 mingw 编译器(我在另一台计算机上,所以目前无法提供解决方案).. 其他问题仍未解决。
c++ - 构建自定义提升库
难道没有一种简单的方法来选择源文件并使用(/MT, /MTd, /MD, /MDd)
MSVC v.8 的所有多线程选项构建它们吗?
我见过这个命令,
从 MSVC 命令提示符开始,但这个过程在我的操作系统上需要很长时间,比如长达 10 小时,运行在 1.66 Ghz Intel Duo Core 和 512 RAM 上。
如何选择要构建的库?
boost-thread - 链接程序以提升线程库时出错
我必须为线程构建boost库。所以我下达了命令
在 boost_1_46_1 目录中。然后
当我尝试使用下面的命令编译一个涉及线程的简单程序时,我得到了错误。
我错过了什么吗?
python - BoostBuild:patchlevel.h 不存在
我正在尝试在 Ubuntu 11.04 上使用 bjam 编译 C++ 项目。我不断收到以下错误:
我搜索了我的项目目录,有几个名为 patchlevel.h 的文件,但我不知道它们是什么。它们是 Boost 的一部分吗?
我也多次收到此错误:
这个文件也肯定存在。在我需要更改以指向这些文件的任何 Boost 配置文件中是否有某种路径设置?
macos - OSX Snow Leopard:为 32 位和 64 位构建 boost 1.47.0
我快疯了...我目前正在尝试在 osx snow leopard 上将我的项目的 boost 从 1.44.0 升级到 1.47.0。-我想使用以下命令构建它:
我希望它给我一个支持 i386 和 x86_64 的静态胖版本。无论如何,它显然不是,因为如果我查询lipo -info
生成的库,它们都是 x86_64。- 我能做些什么来解决这个问题?会不会是构建脚本坏了?