标签: boost-build

如何解码boost库命名?

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

我想它应该是一个清楚记录的地方,我想找到它.

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

更新

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

c++ boost boost-build bjam

53
推荐指数
2
解决办法
2万
查看次数

如何在Windows上构建x64 Boost库?

我已多次构建x86 Boost库,但我似乎无法构建x64库.我启动"Visual Studio 2005 x64交叉工具命令提示符"并运行我的常规构建:

bjam --toolset=msvc --build-type=complete --build-dir=c:\build install
Run Code Online (Sandbox Code Playgroud)

但它仍然生成x86 .lib文件(我用dumpbin/headers验证了这一点).我究竟做错了什么?

c++ 64-bit boost visual-studio-2005 boost-build

50
推荐指数
2
解决办法
5万
查看次数

使用MSVC 11进行编译(VS 2012)

如何使用Visual Studio C++ 11构建Boost(我试过1.48.0版本)?找不到工具集.我添加了工具集vc11 但收到了一条消息:bootstrap.batvc11F:\Programming\boost_1_48_0\tools\build\v2\engine\build.bat

ERROR: Cannot determine the location of the VS Common Tools folder.
Run Code Online (Sandbox Code Playgroud)

编辑:费鲁乔 答案适用于VS 2012 Express和升压1.51.0过.

c++ boost boost-build visual-c++ visual-studio-2012

27
推荐指数
4
解决办法
4万
查看次数

BoostBuild:patchlevel.h不存在

我正在尝试在Ubuntu 11.04上使用bjam编译一个C++项目.我一直收到以下错误:

../../libraries/boost_1_44_0/boost/python/detail/wrap_python.hpp:75:24: fatal error: patchlevel.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

我搜索了我的项目目录,有几个名为patchlevel.h的文件,但我不知道它们是什么.它们是Boost的一部分吗?

我也多次得到这个错误:

pa-vision-lib/../captureformat.h:4:25: fatal error: linux/ovcam.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

这个文件也肯定存在.在我需要更改为指向这些文件的任何Boost配置文件中是否存在某种路径设置?

python boost boost-build

17
推荐指数
2
解决办法
1万
查看次数

编译boost时,`threading = multi`究竟做了什么?

我不完全确定threading=multi在构建boost时旗帜到底是什么.文件说:

 Causes the produced binaries to be thread-safe. This requires proper
 support in the source code itself.
Run Code Online (Sandbox Code Playgroud)

这似乎不是很具体.这是否意味着对例如升级容器的访问受到保护mutexes/locks或类似的保护?由于我的代码性能至关重要,我想尽量减少任何不必要的互斥量等.

更多细节:

我的代码是一个插件DLL,它被加载到一个多线程的第三方应用程序中.我静态地将boost链接到DLL(除了标准的Windows DLL之外,插件不允许有任何其他依赖项,所以我不得不这样做).

虽然应用程序是多线程的,但我的DLL中的大多数函数只能从单个线程调用,因此无需保护对容器的访问.我明确地保护我的代码的剩余位置,可以通过使用boost::mutex和朋友从多个线程调用.

我试过建设提升既threading=multithreading=single和似乎都工作,但我真的很想知道我在这里做.

c++ windows multithreading boost boost-build

11
推荐指数
2
解决办法
7573
查看次数

Boost.Build/bjam和Qt

我正在尝试设置一个Boost.Build .jamroot文件来编译Qt 4.8项目,但它似乎忽略了.ui文件和应该是moc:ed的.cpp文件.我尝试在qt4.jam内部进行探索,添加更多的ECHO:s,但我不确定在哪里看.

例如,似乎uic-generator的run方法没有被调用(init确实),但我认为它应该是.

我的jamroot文件看起来像这样:

import qt4 ;
if ! [ qt4.initialized ]
{
    ECHO "oh nooo" ;
}
import cast ;

exe application :
    # For example
    [ cast _ moccable-cpp : ./src/something.cpp ] 
    [ glob-tree *.ui  : .svn ] 
    ;
Run Code Online (Sandbox Code Playgroud)

我得到的唯一输出是:

>bjam
warn: Unable to construct ./application
...found 1 target...
Run Code Online (Sandbox Code Playgroud)

如果我运行bjam --debug-configuration,qt4.jam会打印出我的Qt安装的所有正确路径.

这是怎么回事?也许它与Qt 4.8不兼容?或者我只是错误地使用它?虽然代码几乎逐字地取自examples/qt下的文件.

我怎么用呢?谢谢你的帮助.

编辑:使用gcc 4.7和http://nuwen.net/mingw.html中的MinGW发行版9.0 ,以及Boost 1.49.0附带的Boost.Build.

c++ qt boost-build bjam

8
推荐指数
1
解决办法
1107
查看次数

在windows中使用Android ndk中的Boost

我试图在Eclipse中使用带有Android ndk的boost库和Windows.我试着按照这个教程

我在cygwin中遇到了"bjam"命令.

bjam --without-python --without-serialization toolset = gcc-android4.4.3 link = static runtime-link = static target-os = linux --stagedir = android

错误:找不到bjam命令.

什么是bjam?我也沿着ndk r8e使用了boost 1.53.请有人帮我这个吗?

c++ android boost boost-build android-ndk

8
推荐指数
1
解决办法
8796
查看次数

如何使用Visual Studio 2013构建Boost 1.55?

我正在尝试使用Visual Studio 2013构建Boost 1.55.

1)我尝试使用boost-binaries(boost-binaries),但是当我尝试编译时,Visual Studio写了关于错误的信息:

错误LNK1104:无法打开文件'libboost_serialization-vc120-mt-gd-1_55.lib'.我使用了boost_1_55_0-msvc-12.0-32.exe或1.55.0-build2(boost-binaries).

我没有在boost_1_55_0\lib32-msvc-12.0目录中找到.lib文件.

2)我也尝试使用这个程序BlueGo 0.1.7(BlueGo).它工作非常顺利,并创建我需要的所有库.

问题在于它创建了像这样的.lib文件:

libboost_serialization-vc110-MT-GD-1_55.lib

但我使用Visual Studio 2013并且需要使用vc120版本的编译器而不是vc110,过度使用它会引发错误.

3)最后我决定自己创建dll/lib文件.

我在boost站点中使用了以下指南: Simplified Build From Source.

如果您希望使用Visual C++从源代码构建,可以使用本节中描述的简单构建过程.打开命令提示符并将当前目录更改为Boost根目录.然后,键入以下命令:

bootstrap
.\b2
Run Code Online (Sandbox Code Playgroud)

上面我写了,我需要做什么.

我启动了"VS2012 x86 Native Tools命令提示符",将dir更改为boost root目录并输入命令:

bootstrap
Run Code Online (Sandbox Code Playgroud)

我马上得到了错误:

C:\thirdparty\vs2013\x86\boost_1_55_0>.\bootstrap.bat
Building Boost.Build engine

Failed to build Boost.Build engine.
Please consult bootstrap.log for furter diagnostics.

You can try to obtain a prebuilt binary from

   http://sf.net/project/showfiles.php?group_id=7586&package_id=72941

Also, you can file an issue at http://svn.boost.org
Please attach bootstrap.log in that case.
Run Code Online (Sandbox Code Playgroud)

在日志文件中,我注意到以下错误:

execnt.c(56):致命错误C1083:无法打开包含文件:'tlhelp32.h':没有这样的文件或目录

bootstrap.log文件: …

c++ boost linker-errors boost-build visual-studio-2013

8
推荐指数
1
解决办法
9567
查看次数

更改boost.build jamfile以获得C++ 11支持?

我一直在使用boost.build或b2来构建项目.我正在尝试添加类似的C++ 11结构auto,begin但是b2 release使用Jamfile的目录中的标准调用无法识别这些.

boost-build bjam c++11

7
推荐指数
2
解决办法
7200
查看次数

在执行bcp之后构建依赖的boost库

所以我使用了一组boost库,但是包含文件的绝对数量使得检查一个干净的副本真的很慢.我敢肯定大多数使用svn的boost的人已经注意到了这一点.我google了一会儿,从boost中找到一个很好的实用程序,bcp它只会将依赖的头文件复制到我指定的目录中.所以,我想要做的是在svn中提供最少数量的头文件,并允许开发人员根据需要编译所有内容.第一步是复制必要的头文件并检查所有必要的预编译库.下一步是抛弃预编译的库,并使其成为我正在为我的项目使用的任何构建系统的预构建步骤(在我的情况下,Visual Studio,但make也会非常好).我的问题是这个

有人知道如何构建标题子集所需的库吗?

我正在按照这个方针做一个bcp

bcp.exe --scan C:\path\to\my\files\main.cpp C:\path\to\my\files\someOtherCppFilesToo.cpp C:\path\to\reduced\boost
Run Code Online (Sandbox Code Playgroud)

互联网似乎认为我可以做这样的事情

cd C:\path\to\reduced\boost
bootstrap.exe
b2.exe
Run Code Online (Sandbox Code Playgroud)

现在的问题是我无法弄清楚是否有某种方法可以复制compile/bootstrap/jam /无论配置如何,以便boost.build和bootstrap知道如何配置/编译所有内容.我显然不想从boost目录中复制每个文件,因为这会破坏减少boost包含的整个目的.

boost bootstrapper boost-build

7
推荐指数
1
解决办法
295
查看次数