如何在C ++项目中包含boost :: thread?

时间:2010-02-01 03:32:13

标签: c++ boost multithreading

在项目中包含boost :: thread需要做什么?我已将整个线程文件夹复制到我的工作路径(我希望能够在多台计算机上运行)并且我得到了

  

致命错误C1083:无法打开包含   文件:   'boost / thread / detail / platform.hpp':没有   这样的文件或目录

#include "thread/thread.hpp"

行开始

是什么给出了?

修改 即使我只是链接到已安装预编译二进制文件的boost文件夹,我也使用#include <boost/thread/thread.hpp>

  

致命错误LNK1104:无法打开文件   'libboost_thread-VC90-MT-1_41.lib'

4 个答案:

答案 0 :(得分:11)

不幸的是,boost :: thread不是“仅限标头”的库 - 因此你需要编译它。基本上有两种方法可以解决它。

  1. 你从boostpro下载一个预建的安装包(假设你在windows上) - https://sourceforge.net/projects/boost/files/boost-binaries/
  2. 您可以自行构建 - 请参阅http://www.boost.org/doc/libs/1_35_0/more/getting_started/index.html

答案 1 :(得分:2)

在Visual Studio环境中下载,解压缩并安装了boost库,并告诉Visual Studio项目Boost库所在的位置,您还没有完成。 Boost库中有许多库需要您自己构建它们。 Boost线程就是这样一个库。

  1. 构建bjam.exe程序(如果尚未执行)。可能最简单的方法是直接从BoostPro获取并运行它,告诉安装您希望安装哪些库(线程) - 您不必安装所有这些库。

    < / LI>
  2. 转到C:\ Program Files \ boost_1_46_1 \ tools \ build \ v2 \ engine \ src目录并从命令提示符运行build.bat。运行build.bat脚本将在此目录中创建bjam.exe: C:\ Program Files \ boost_1_46_1 \ tools \ build \ v2 \ engine \ src \ bin.ntx86

  3. 在PATH环境变量中选择bjam.exe。包含目录C:\ Program Files \ boost_1_46_1 \ tools \ build \ v2 \ engine \ src \ bin.ntx86作为另一个环境变量。

  4. 在命令提示符处,转到C:\ Program Files \ boost_1_46_1目录,输入“bjam”,在程序创建时等待大约5-10分钟。

  5. 在Visual Studio项目中,选择配置属性 - &gt;链接器 - &gt;输入 - &gt;其他依赖项并输入libboost_thread-vc100-mt-gd-1_46_1.lib。

  6. 在Visual Studio项目中设置项目配置属性 - &gt;链接器 - &gt;一般 - &gt;附加包含目录,告诉它stage / lib文件夹的位置,例如C:\ Program Files \ Boost_1_46_1 \ stage \ lib。

  7. 这应该足以让你前进。有关更全面的详细信息,请参阅此blog posting

答案 2 :(得分:0)

我得到了&#39; boost :: thread&#39;的编译时错误。但是当我包含以下标题时它就解决了。

#include <boost\thread.hpp>

答案 3 :(得分:-1)

致命错误C1083是Visual C ++错误。您应该在项目中包含boost中的库文件夹。如果你正在使用boostpro,“C:\ Program Files \ boost \ boost_1_41 \ lib”。

当您使用boostpro下载线程库时,您需要在列表中进行检查(您也可以选择编译器......)。