【问题标题】:Adding POCO C++ Library Netbeans on Linux在 Linux 上添加 POCO C++ 库 Netbeans
【发布时间】:2014-03-24 16:11:34
【问题描述】:

我正在尝试在 Ubuntu Linux 13.04 上将 POCO C++ 库与 Netbeans IDE 一起使用。我已经下载、构建并安装了 POCO C++ 库。该库可以在目录“/usr/local/include/Poco”中找到。我想知道如何将 POCO C++ 库添加到 Netbeans IDE 并能够使用它。请详细回答。

谢谢

【问题讨论】:

    标签: c++ linux netbeans poco-libraries


    【解决方案1】:

    要链接外部库,您通常需要三件事:

    1. 将头文件添加为包含目录-I标志
    2. 将库路径添加到您的POCO C++ *.so 文件-L 标志
    3. 要在编译器中添加库名称而不使用 lib 前缀,例如 poco 将是 poco-Foundation 并且您系统中的文件名称将是 libpoco-Foundation.so

    现在特定于 Netbeans

    对于头文件

    File -> Project Properties -> Build -> C++ Compiler -> General -> Include Directories 这是第一步

    对于库目录

    Project -> properties -> Linker -> Additional Library Directories 这是第二步

    对于图书馆

    Project -> properties -> Linker ->Libraries -> Add option -> Other只针对库文件,也就是第三步。

    在 Poco 库的情况下,它们通常像 Boost 库一样处理,例如

    #include "Poco/AutoPtr.h"
    

    这意味着包含目录必须比Poco 文件夹高一级。例如,如果您的 Poco 文件夹位于“/usr/local/include/Poco”上,那么您需要将“/usr/local/include”添加到您的包含目录(从第一步开始)。

    至于-L/usr/local/include/Poco这不是怎么做的。此路径是您的特定库的路径,在 poco 的情况下,有 FoundationXMLNetUtil 以及测试项目。您需要找到名为libPoco-*.so 的文件,其中“*”表示某些内容。这很可能在您的目录usr/local/lib 中,如果这些文件不存在,那么它们很可能在usr/local/lib/Poco

    如果没有名为 libPoco-*.so 的文件,则必须单独构建 Poco 库。

    【讨论】:

    • 你好。首先,在“/usr/local/include/Poco”中包含的 Poco 目录中,只有 .h 文件。所以我做了以下步骤 1) 在 File->Project Properties->Build->C++ Compiler->General-> Include Directories 中,我添加了整个 Poco 文件。我对您发布的第 2 步和第 3 步做了同样的操作。我尝试运行一个简单的示例,但它没有编译并给我一个错误“g++ -o dist/Debug/GNU-Linux-x86/pocolibrary build/Debug/GNU-Linux-x86/main.o -L/usr/本地/包含/Poco /usr/local/include/Poco”。任何建议
    • -L 目录与包含目录不同,请检查我所做编辑的最后几段。您还缺少 -lpoco-foundation 标志,最后错误应该看起来像这样g++ -o build/Debug/GNU-Linux-x86/main.o -L/usr/local/include/Poco -I/usr/local/include -lpoco-foundation
    • 我已经修改了您指示我执行的操作。在文件->项目属性->构建->C++编译器->常规->包含目录中,我在包含文件中添加了“usr/local/include”是 POCO 文件。在 Project->Properties->Linker->Additional Library Directories 中,我添加了包含 libPoco-*.so 文件的“usr/local/lib”。我编写了一个从 POCO 文档中复制的简单程序,然后编译它并得到错误“/usr/local/include/Poco/Ascii.h:149: undefined reference to Poco::Ascii::CHARACTER_PROPERTIES'”。是 POCO 构建的问题还是 Netbeans IDE 的问题
    • 很好,就是说你需要添加-l(l小写)标志,也就是第3步。Poco ascii是在libPoco-Foundation.so中定义的,所以现在你需要做的是转到Project -> properties -> Linker ->Libraries -> Add option -> Other 并添加-lPoco-Foundation,或者如果您有另一个版本的NetBeans,上面写着添加库,只需输入Poco-Foundation
    • 我打开了 Project->Properties->Linker->Libraries->AddLibrary,我打开了“usr/local/lib”并添加了“libPocoFounation.so”。我运行了我的程序,它编译没有问题。这就是你说的第三步吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多