首页 文章

如何配置Qt Creator在Windows中使用Boost

提问于
浏览
10

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

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

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

可悲的是没有正确安装 . 我只有2个文件夹(bin和共享)但没有 Headers .

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

现在我认为问题是.pro文件,因为我有很多未定义的引用 . 这是.pro文件,我试过的一切(一些评论):http://pastebin.com/pBFMTAd8

非常感谢您的帮助!

2 回答

  • 10

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

    • 将mingw编译器添加到Windows PATH变量:
      〜转到控制面板并搜索System;
      〜添加mingw 's path(e.g. C:\Qt\Tools\mingw\bin) to PATH variable by appending ';'你的道路(例如:";C:\Qt\Tools\mingw\bin")

    • 编译Boost库:
      〜解压缩存档
      〜打开一个命令行窗口,进入解压缩的boost文件夹,然后进入文件夹tools / build / v2 / engine
      〜你用mingw工具集构建安装程序: . \ build --toolset = mingw
      〜这将在文件夹bin.ntx86或类似的东西中创建2个文件;将文件bjam和b2复制到解压缩的boost文件夹中;
      〜现在进入boost文件夹并开始构建它: . \ b2 --toolset = mingw --build-type =完成阶段(有很好的教程可以和eclipse一起安装它:http://theseekersquill.wordpress.com/2010/08/24/howto-boost-mingw/
      注意:这需要几个小时,所以可能想看电影或者你想做什么同时 . 但是,您可以选择通过在构建命令中添加另一个参数来加快速度:-j N,其中N是处理器具有的核心数 .

    • 构建完成后,您现在可以在Qt中链接库 . 为此,您需要修改.pro文件 . 首先,你必须告诉Qt Headers 的位置,你可以通过添加:
      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,然后重建 .

    希望这也适合你!

    Update :文件夹层次结构已更改 . 要构建库,应该阅读与每个版本相关的文档和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
    
  • 0

    构建boost不会放置 Headers , Headers 是为开发人员创建新代码时 . 已安装的目录是用于分发的二进制文件 .

    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”

相关问题