2010-03-25 55 views
9

我想在Eclipse中的C++项目中使用Boost库。在Boost中使用仅包含头文件的库时,我可以成功构建,例如使用lambda头的“入门指南”指南中的示例简单程序。在Eclipse中链接升压到我的C++项目

我无法让我的项目成功链接到正则表达式Boost库,如指南中稍后所示。在我的项目属性 - > C/C++编译 - >设置 - >工具设置选项卡 - >库,我已经加入 “libboost_regex” 到库中,而“C:\ Program Files文件\提升\ boost_1_42_0 \ bin.v2 \库“到库搜索路径框中,因为这是所有.lib文件所在的位置。我甚至尝试在库文件夹中添加“libboost_regex-mgw34-mt-d-1_42.lib”而不是“libboost_regex”,因为这是确切的文件名,但这也不起作用。

当我试图建立我的项目时,我总是收到一个错误,说“找不到-llibboost_regex”。任何想法如何我可以解决这个问题?

编辑:在Windows XP中,使用MinGW的,我已经试过“boost_regex”以及..

+0

不应该是-lboost_regex? – 2010-03-25 22:01:56

+2

你在哪个平台上?你使用什么编译器/链接器? – 2010-03-25 22:04:10

+0

你自己建立提升吗? – 2010-03-25 22:16:46

回答

19

我刚刚完成了安装MinGW,编译boost和安装Eclipse CDT的整个过程,我可以使用boost:regex编译简单的程序。我会写下所有的步骤。我希望能有所帮助。

我已经在他们的默认位置安装了MinGW和MSYS。

下面是我建升压步骤:从http://sourceforge.net/projects/boost/files/boost-jam

  • 把你的PATH某处bjam.exe

    • 下载boost-jam-3.1.18-1-ntx86.zip
    • C:\mingw\boost_1_42_0
    • 拆开升压打开一个MSYS终端窗口,cd /c/mingw/boost_1_42_0
    • 在升压目录下运行bjam --build-dir=build toolset=gcc stage

    配置Eclipse:

    • CDT添加到Eclipse 3。5从the update site
    • 创建一个新的C++项目
    • 项目菜单中选择性能
    • 确保配置调试[活动]
    • 在“C/C++通用 “>”路径和符号

      • 根据包括选项卡中选择GNU C++语言并添加C:\MinGW\boost_1_42_0
      • 根据库路径标签添加C:\MinGW\boost_1_42_0\stage\lib
    • 在 “C/C++编译”>“设置

      • 选择MinGW的C++链接器>
      • 点击Add按钮库(-l)
      • 类型 (不.LIB)

    然后,您可以请执行版本配置的相同步骤,但改为使用libboost_regex-mgw34-mt。另外请确保您的源文件包括<boost/regex.hpp>

  • +1

    非常感谢!我将库路径目录更改为stage \ lib目录并添加了libboost_regex-mgw34-mt-d并且它工作正常! – MahlerFive 2010-03-26 03:18:32

    +1

    我发现一步一步的这对eclipse方面非常有帮助。我必须结合使用它与这个其他问题来帮助我通过最新的目录结构和构建过程来提升:http://stackoverflow.com/questions/5299468/unable-to-build-boost-libraries-with- gcc(答案是7岁,所以没有投诉,只是更新!) – Brick 2017-03-11 22:55:26

    0

    我相信你的库路径指向错误的地方。该库将被安装到:

    boost_install_dir \ boost_1_42 \ lib中

    我觉得默认的boost_install_dir为 “C:\ Program Files文件\升压”(不知道,因为我不使用默认的安装目录)。

    +1

    我有一个“libs”目录,但不是我的boost目录中的“lib”,但它实际上并不包含bin.v2 \ libs目录中的编译文件 – MahlerFive 2010-03-26 03:11:20

    7

    要链接到eclipse中的boost库,您需要设置eclipse的项目库路径(带有-L的那个)和库的名称(带有-l )。

    必须删除前缀'lib'和库名的扩展名: - 例如:libboost_regex.a应该指定为boost_regex。

    +1

    谢谢!我在Mac OS X上使用了这个软件。结束时只需输入“boost_system”作为-l和我的-L指向“bin.v2/libs”。 – span 2012-02-18 15:35:26

    +1

    这应该是正确的答案。它解决了所有操作系统上的问题,并且与版本无关。 – Zippo 2013-07-03 14:36:00