【问题标题】:How to include boost::thread in your C++ project?如何在 C++ 项目中包含 boost::thread?
【发布时间】:2011-01-11 14:00:55
【问题描述】:

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

致命错误 C1083:无法打开包含 文件: '升压/线程/细节/platform.hpp':否 这样的文件或目录

来自#include "thread/thread.hpp"这一行

什么给了?

编辑: 即使我只是链接到安装了预编译二进制文件的 boost 文件夹并且我使用 #include <boost/thread/thread.hpp> 我得到了

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

【问题讨论】:

  • 你建好库了吗? Boost.Thread 是为数不多的不是仅标头的 Boost 库之一。
  • 你确定吗?我不知道,但是查看线程文件夹,它们都是 .hpp ..
  • 是的,我确定。阅读“入门”指南:boost.org/doc/libs/1_41_0/more/getting_started/index.html
  • 您确定 platform.hpp 在您需要的位置吗?另外,您是否使用预编译的 boost 库?
  • 我正在使用预编译的 boost 库,虽然我想将它们作为我的项目的一部分,并且可以将此应用程序移动到没有安装 boost 的计算机上,以诚实..

标签: c++ boost multithreading


【解决方案1】:

不幸的是 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

【讨论】:

  • 我下载了预构建的安装包,但我想在我的项目编译中包含 boost::thread 的东西(我相信它会变得更大,但我想在许多可能没有安装 boost 的计算机上运行它)
  • @Chris,有来自 boostpro 的库的静态链接发行版......这意味着您只需链接到库,它将包含在您的编译中。这样,您无需尝试自己构建 boost 库(ofc,假设您在 Windows 上)。
  • @Polaris 我目前在 Windows 上,但也会在一些 linux 机器上运行这个应用程序(因此选择 boost::thread)
  • @Chris,在这种情况下,你需要对 Boost.Build 友好:)
  • 取决于您的 linux 发行版。在 Debian 上(我希望大多数/所有 Debian 衍生产品), boost::thread 只是一个快速的“aptitude install libboost-thread-dev”。
【解决方案2】:

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

另外当你用boostpro下载线程库时,需要在列表中勾选(也可以选择编译器...)。

【讨论】:

    【解决方案3】:

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

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

    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 项目中,选择 Configuration Properties -> Linker -> Input -> Additional Dependencies 并输入 libboost_thread-vc100-mt-gd-1_46_1.lib。

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

    这应该足以让您继续前进。更全面的细节,请看这个blog posting

    【讨论】:

      【解决方案4】:

      我收到“boost::thread”的编译时错误。但是当我包含以下标题时,它就解决了。

      #include <boost\thread.hpp>
      

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2022-11-27
        • 2021-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多