【问题标题】:How to configure Qt Creator to use Boost in Windows如何配置 Qt Creator 以在 Windows 中使用 Boost
【发布时间】:2016-03-06 01:24:04
【问题描述】:

我在 Ubuntu 中创建了一个 Qt 项目,一切顺利。但是,我还需要在 Windows 上部署它。它使用 Boost 库(大问题)。

我一直在寻找几个小时来找到解决方案,但没有运气。我尝试安装 Boost 库并将其与 mingw 链接;我想我错过了什么。这是我所做的并下载了最新版本:

1) 运行 .\bootstrap
2) 然后 .\b2 --prefix=C:\boost install

遗憾的是没有正确安装。我只有 2 个文件夹(bin 和 share),但没有标题。

但是,在这里 (http://nuwen.net/) 我找到了一个捆绑包(Mingw+Boost 和其他库)。这有我需要的一切。

现在我认为问题是 .pro 文件,因为我有很多未定义的引用。这是 .pro 文件,其中包含我尝试过的所有内容(一些评论): http://pastebin.com/pBFMTAd8

感谢您的帮助!

【问题讨论】:

  • 一些错误信息会很好。您能否确认您的 boost 库位于 C:/MinGW/lib 中?
  • 我的错,这里有一些错误:postimg.org/image/h4vvo8mgx/9040bd30;这里是路径 C:\MinGW\lib: postimg.org/image/3lw19jdt9/ad5481f9
  • 我只看到 .a boost 库。您的 .pro 文件中没有任何内容表明您进行了静态构建。此文件夹中是否还有 boost .dll 文件?
  • 只有 .a boost 库。我现在尝试使用静态配置,但没有改变任何东西。我想要的只是部署它,无论是静态构建还是动态构建。你能帮我进一步吗?

标签: c++ qt boost


【解决方案1】:

我确实自己解决了这个问题。这就是我的做法。首先,需要使用与 Qt 一起使用的相同编译器编译 boost 库。
如果您使用的是 msvc,那么您很幸运,因为 Boost 人帮了您一个忙,并为您编译了库。你可以在这里下载它们:http://sourceforge.net/projects/boost/files/boost-binaries/ .
如果您使用的是 mingw(它与 Qt 捆绑在一起),您可以这样做:

  • 将 mingw 编译器添加到 Windows PATH 变量:
    ~进入控制面板并搜索系统;
    ~ 通过附加 ';' 将 mingw 的路径(例如 C:\Qt\Tools\mingw\bin)添加到 PATH 变量中到您的路径(例如:“;C:\Qt\Tools\mingw\bin”)
  • 编译 Boost 库:
    ~解压boost存档
    ~ 打开命令行窗口,进入解压后的 boost 文件夹,然后进入文件夹 tools/build/v2/engine
    ~你有你用mingw工具集构建安装程序:.\build --toolset=mingw
    ~ 这将在文件夹 bin.ntx86 或类似文件夹中创建 2 个文件;将文件 bjam 和 b2 复制到解压后的 boost 文件夹中;
    ~ 现在进入 boost 文件夹并开始构建它:.\b2 --toolset=mingw --build-type=complete 阶段(有很好的教程可以与 eclipse 一起安装它:http://theseekersquill.wordpress.com/2010/08/24/howto-boost-mingw/
    注意:这需要几个小时,所以可能想看电影或同时做任何你想做的事情。但是,您可以选择通过在构建命令中添加另一个参数来稍微加快速度:-j N,其中 N 是您的处理器拥有的内核数。
  • 构建完成后,您现在可以在 Qt 中链接库。为此,您需要修改 .pro 文件。首先,您必须告诉 Qt 标头的位置,您可以通过添加:
    INCLUDEPATH += path_to_boost_folder,例如: INCLUDEPATH += C:/boost_1_54_0
    ~ 如果您使用需要链接的库,例如系统和文件系统,您必须分别链接它们:
    LIBS += "C:/boost_1_54_0/stage/lib/libboost_filesystem-mgw48-1_54.a",
    LIBS += "C:/boost_1_54_0/stage/lib/libboost_system-mgw48-1_54.a"
  • 修改 .pro 文件后,运行 qmake,然后重建。

希望这对你也有用!

更新:文件夹层次结构发生了变化。要构建库,应该阅读与每个版本相关的文档和Boost.Build's documentation。 从根文件夹构建库更容易(Building Boost 1.52 with MinGW):

C:\boost_1_60_0> bootstrap.bat mingw  
C:\boost_1_60_0> .\b2 --toolset=gcc -j N --build-type=complete

【讨论】:

    【解决方案2】:

    building boost 不会放标头,标头是供开发人员在创建新代码时使用的。安装的目录是分发的二进制文件。

    http://www.boost.org/doc/libs/1_54_0/more/getting_started/windows.html#prepare-to-use-a-boost-library-binary

    这将安装您在运行时(而非编译时)使用的库。因为您将此 bin 文件夹添加到您的路径中,这就是为什么在使用 boost 运行应用程序构建时它会运行并且不会说“找不到 xxx.dll”

    【讨论】:

      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多