12

我在使用 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程序将适当的库和头文件附加到我们的命令中。

4

2 回答 2

16

我不认为 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,因为您应该拥有创建它所需的信息。

于 2010-03-30T02:10:32.430 回答
4

在 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
于 2017-08-14T02:37:16.337 回答