将Boost链接到Eclipse中的C ++项目

时间:2010-03-25 22:00:05

标签: c++ regex eclipse boost linker

我正在尝试让Boost库在Eclipse中的C ++项目中运行。我可以在Boost中使用仅包含头的库时成功构建,例如使用lambda头的“入门”指南中的示例简单程序。

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

当我尝试构建项目时,我不断收到“无法找到-llibboost_regex”的错误消息。关于如何解决这个问题的任何想法?

编辑:在Windows XP上,使用mingw,我也试过了“boost_regex”..

3 个答案:

答案 0 :(得分:19)

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

我已将MinGW和MSYS安装在默认位置。

以下是我为构建提升所采取的步骤:

  • http://sourceforge.net/projects/boost/files/boost-jam
  • 下载boost-jam-3.1.18-1-ntx86.zip
  • 将bjam.exe放在PATH中的某个位置
  • C:\mingw\boost_1_42_0
  • 中解压缩提升
  • 打开msys终端窗口并cd /c/mingw/boost_1_42_0
  • 在boost目录中运行bjam --build-dir=build toolset=gcc stage

配置Eclipse:

  • the update site
  • 将CDT添加到Eclipse 3.5
  • 创建新的C ++项目
  • 项目菜单下,选择属性
  • 确保配置为 Debug [Active]
  • 在“ C / C ++ General ”>中“路径和符号

    • Includes 标签下,选择 GNU C ++ 语言并添加C:\MinGW\boost_1_42_0
    • 图书馆路径标签下添加C:\MinGW\boost_1_42_0\stage\lib
  • 在“ C / C ++ Build ”>中“设置

    • 选择 MinGW C ++链接器>
    • 点击图书馆(-l)
    • 的添加按钮
    • 键入libboost_regex-mgw34-mt-d (不包含.lib)

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

答案 1 :(得分:7)

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

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

答案 2 :(得分:0)

我相信你的lib路径指向错误的地方。 libs将安装到:

boost_install_dir \ boost_1_42 \ lib中

我认为默认的boost_install_dir是“C:\ Program Files \ Boost”(不确定,因为我没有使用默认的安装目录)。