【问题标题】:How to link Poco library(libraries) to our program in unix environment如何在 unix 环境中将 Poco 库(库)链接到我们的程序
【发布时间】:2011-01-30 06:05:08
【问题描述】:

我在使用 Poco 库时遇到了问题。我需要一个简单的解决方案来简化编译。 Poco 库是否有任何 pkg-config 文件可以将其用于我们的 make 文件?或者任何替代解决方案?

目前我使用的是 Ubuntu GNU/Linux。

我正在尝试在我的应用程序中使用 poco 库,但我不知道如何将 Poco 库链接到它。事实上,我不知道应该将多少个库链接到应用程序。我想知道是否有一种简单的方法可以做到这一点,例如使用pkg-config 文件,就像我们使用gtkmm 一样,例如:

g++ prog.cc `pkg-config --gtkmm-2.4 --libs --cflags` -o prog

pkg-config 程序将适当的库和头文件附加到我们的命令中。

【问题讨论】:

  • 您是否在编译 Poco 本身或使用 Poco 的程序时遇到问题?
  • 使用 poco 的程序有问题。
  • @SepDev - 你没有做太多事情。比什么简单?你目前在做什么?您可以重新编辑您的问题以提供更多信息。

标签: c++ linux poco-libraries ubuntu-9.10


【解决方案1】:

我不认为 Poco 附带任何预打包的“.pc”文件,但如果您喜欢这种方法,您应该能够轻松创建自己的文件并将它们粘贴到系统上的 lib/pkgconfig 目录中。

我不知道您在系统上安装 Poco 的确切位置,因此您可能需要“查找”才能找到您的文件。要编译,您需要指定 poco 头目录、poco 库目录和各个 poco 库。所以像:

g++ -I<path-to-poco-include-dir> -o prog prog.cpp -L<path-to-poco-lib-dir> -l<some-poco-lib> -l<another-poco-lib> 

例如:

g++ -I/usr/local/Poco/include -o prog prog.cpp -L/usr/local/Poco/lib -lPocoFoundation -lPocoNet  -lPocoNetSSL -lPocoUtil -lPocoXML

有 20 个左右不同的 poco .so 文件,因此您显然需要链接正确的文件。 Poco 使这非常容易,因为库名称符合文档部分 - 例如util 的东西在 libPocoUtil.so 中。如果您还编译了库的调试版本,它们将以 'd' 结尾 - 例如libPocoUtild.so

同样,一旦您找到所有文件,您可能更愿意创建自己的 poco.pc,因为您应该拥有创建它所需的信息。

【讨论】:

    【解决方案2】:

    在 ubuntu 16.04 上,您首先需要相应地安装 Poco 库,操作如下:

    sudo apt install libpoco-dev
    

    然后您需要向链接器添加正确的指令,这将取决于您拥有的包含,例如,如果您使用了

    #include <Poco/Net/MailMessage.h>
    

    您需要以下开关:

    -lPocoNet -lPocoFoundation
    

    ej:

    g++ main.cpp -Wall -std=c++11 -o pocotest -lPocoNet -lPocoFoundation
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多