我找不到Boost 1.37.0的预构建的MSVC++库,只有源代码.我不明白他们奇怪的构建系统是如何工作的...有没有我可以找到下载Visual Studio项目的地方?
我最近在Linux中构建了Boost库,并注意到该包需要一个名为bjam的可执行文件才能进行构建.bjam是否与果酱有关?如果它与果酱有关,它们是否以某种方式扩展(甚至是愚蠢的)bjam?它仅用于构建Boost库还是用于任何事物的通用构建工具?
我正在尝试使用与 1.42 版 Boost 捆绑在一起的最新版 bjam 来构建 1.35 版的 Boost。这会对构建结果产生不利影响吗?这甚至可能吗?
我尝试这样做的原因是因为最新版本的 BJam 支持命令行选项,这些选项不包含在与 1.35 的 boost 捆绑在一起的旧版 BJam 中。
我已经尝试过阅读文档,但这是相当难以理解的,所以我希望有人可能有一个简单的答案.我想基于'debug'定义一个新的'variant',它只是将一些宏定义添加到编译器命令行,例如"-DSOMEMACRO".我想我可以做这个作为调试的"子变体",或者只是定义一个复制'debug'的新变种,但我甚至不确定在哪里做这个.看起来$ BOOST_BUILD_DIR/build中的feature.jam可能就是这个地方.也许我真正想要的只是一个新的"功能",但我仍然不清楚我需要做什么以及在哪里,我不知道'功能'是否允许我将构建产品指向不同的目录到'debug'构建.
任何建议将不胜感激.(如果您想知道,我必须使用bjam,因为它已被采纳为我们的企业标准.)
由于配额限制,我真的需要构建一个项目,我正在处理所有临时文件并在单独的目录中构建产品(在我的例子中/tmp/somewhere).
我习惯用CMake做这件事bjam,如果有的话,怎么可能呢?
在我的机器上,默认情况下,variant = release的cxxflags是-O3.
我需要将它改为-O2.请告知如何继续.
如果有人可以就此提出建议,我也可以定义一个新变种.
我理解Jam构建现有项目,CMake生成要构建的项目.但是,鉴于我宁愿生成可以在各种IDE中使用的项目,而不是尝试将Jam集成到那些IDE中,有没有人有任何经验/成功将Jamfile转换为CMakeLists.txt文件?
我在理解如何使用bjam指定和调用目标时遇到问题.通过这个,我的意思是我想为bjam提供命令行目标来构建(实际上来自Makefile),这些目标对应于构建过程的不同方面,而不仅仅是运行整个事物.
例如,现在当我键入'bjam'时,它会关闭并构建一个python扩展,运行一个单元测试文件,并创建一个单独的'main'可执行文件.我有自定义规则执行每一步,我的Jamfile只是按顺序列出它们:
project-name = example ;
sources =
$(project-name).cpp
$(project-name)_ext.cpp
;
build-ext $(project-name) : $(sources) ;
build-main $(project-name) ;
Run Code Online (Sandbox Code Playgroud)
在我的Jamroot(上一个目录)中我定义了这些规则,这里是不完整的文件:
# A rule to simplify declaration of extension tests:
rule run-test ( test-name : sources + )
{
import testing ;
testing.make-test run-pyd : $(sources) : : $(test-name) ;
}
# A rule to further simply declaration of extension tests:
rule run-ext-test ( project-name )
{
run-test $(project-name) : $(project-name)_ext test_$(project-name)_ext.py ;
}
# A rule to simplify …Run Code Online (Sandbox Code Playgroud) 我刚刚bjam加强了它似乎仍然会拒绝工作(我已经尝试并放弃了制作这个库).我做的是,我启动了bjam.exe并且我链接了:
包含目录: C:\ ...\boost_1_53_0
库目录: C:\ ...\boost_1_53_0\bin.v2\libs
但我仍然得到错误.所以我决定查看文件夹,这显示了所需库的路径:
C:\ ...\boost_1_53_0\bin.v2\libs\date_time\build\msvc-10.0\debug\link-static\threading-multi \
如果我明确地将此文件夹添加到库目录中,则会找到该库但在VCC中会弹出另一个错误,要求我提供另一个库.
那么如何让bjam建立一个VCC可以理解的文件夹系统呢?
我已经使用我能找到的每个boost python资源以及我能想到的每个安装和构建排列来解决这个问题已有40个小时了,但找不到对我有用的任何东西。
像我之前的许多人一样,当我在boost/boost_1_60_0/libs/python/example/tutorial目录中运行bjam时,出现链接器错误。我有Visual Studio 2015,并且尝试通过user-config.jam位于主目录中的文件的不同配置在32位Anaconda,64位Anaconda和纯Python 2.7上运行bjam 。
这是bjam使用任何设置运行后的构建日志。
Performing configuration checks
- 32-bit : yes (cached)
- arm : no (cached)
- mips1 : no (cached)
- power : no (cached)
- sparc : no (cached)
- x86 : yes (cached)
...found 7 targets...
- symlinks supported : yes
...found 1 target...
...updating 1 target...
config-cache.write bin\project-cache.jam
...updated 1 target...
...patience...
...patience...
...found 1917 targets...
...updating 9 targets...
msvc.link.dll ..\..\..\..\bin.v2\libs\python\build\msvc-14.0\debug\threading-multi\boost_python-vc140-mt-gd-1_60.dll
Creating library ..\..\..\..\bin.v2\libs\python\build\msvc-14.0\debug\threading-multi\boost_python-vc140-mt-gd-1_60.lib and …Run Code Online (Sandbox Code Playgroud) bjam ×10
boost ×7
boost-build ×4
boost-python ×2
c++ ×1
cmake ×1
jam ×1
lnk2001 ×1
lnk2019 ×1
makefile ×1