【问题标题】:How to configure Boost with Netbeans 6.9 on Ubuntu如何在 Ubuntu 上使用 Netbeans 6.9 配置 Boost
【发布时间】:2010-11-27 19:09:43
【问题描述】:

我有 gcc 4.4.5 和最新的 boost 库。我想专门为它的正则表达式库使用 boost。我尝试使用内置的 c++ 正则表达式函数,但显然它们还没有完全发挥作用。我按照在线教程设置了netbeans。

我将 /usr/include/boost 添加到 c++ 代码辅助包含目录中。然后,我将 -lboost_regex-mt 添加到项目配置中的 build>linker>additional options 区域。但我仍然收到此错误:

/usr/bin/ld: cannot find -lboost_regex-mt
collect2: ld returned 1 exit status

这是 netbeans 创建的命令:

g++ -lboost_regex-mt -o dist/Debug/GNU-Linux-x86/examples01 build/Debug/GNU-Linux-x86/main.o  

我还尝试使用 -lboost-regex 和 -lboost-regex-st 执行此操作,但出现相同的错误,仅更改了 mt。 我还尝试通过终端使用正则表达式对象运行文件,但仍然遇到相同的错误。任何人都可以帮助解决这个问题吗?或者至少为我指明正确的方向?

【问题讨论】:

    标签: regex linux configuration boost netbeans


    【解决方案1】:

    您必须设置项目的“附加库目录”,以便它知道要查找哪些其他目录以查找要链接的库。

    这是来自 Netbeans 网站的截图:http://netbeans.org/community/magazine/html/03/c++/

    编辑:请注意,这将影响生成的编译器命令具有-L 选项,这些选项指定查找库文件的其他位置。

    【讨论】:

    • 将编译命令更改为 g++ -lboost_regex-mt -o dist/Debug/GNU-Linux-x86/examples01 build/Debug/GNU-Linux-x86/main.o -L/usr/ include/boost 仍然会产生相同的错误。我做对了吗?我在附加库目录区域添加了/usr/include/boost
    • @Robert - /usr/include/boost 可能是 .hpp 头文件。您需要将其设置为安装了所有 boost 编译器库的“lib”目录。它们在哪里取决于你做了什么安装。可能在/usr/lib/boost/usr/local/lib 或类似的地方。您是如何在系统上安装 Boost 的?
    • 我安装了它:sudo apt-get install bcp
    • 实际上没有用,所以我这样做了:sudo apt-get install libboost-dev libboost-doc
    • @Robert - libboost-dev 建议了一堆额外的包,比如libboost-regex-dev,但我不知道它是否真的会安装所有这些,除非你修改 apt 的设置。你可以试试sudo apt-get install libboost-regex-dev吗?
    【解决方案2】:

    您需要告诉 g++ 在哪里可以找到这些库。一种方法是将boost库的位置附加到您的LD_LIBRARY_PATH。请注意,这与您所说的已包含在项目中的头文件(include 目录中的 .hpp 文件)不同。

    【讨论】:

    • 我该怎么做?这将是一个 gcc 问题,对吗? Netbeans 配置正确,只是我必须更改编译器的设置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    相关资源
    最近更新 更多