如何将Poco库(库)链接到unix环境中的程序

sep*_*oad 12 c++ linux ubuntu-9.10 poco-libraries

我在使用Poco库时遇到了麻烦.我需要一个简单的解决方案来使编译更容易.pkg-configPoco库是否有任何文件可用于我们的make文件?或任何替代解决方案?

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

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

g++ prog.cc `pkg-config --gtkmm-2.4 --libs --cflags` -o prog
Run Code Online (Sandbox Code Playgroud)

并且pkg-config程序将适当的libs和头文件附加到我们的命令中.

Duc*_*uck 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> 
Run Code Online (Sandbox Code Playgroud)

例如:

g++ -I/usr/local/Poco/include -o prog prog.cpp -L/usr/local/Poco/lib -lPocoFoundation -lPocoNet  -lPocoNetSSL -lPocoUtil -lPocoXML
Run Code Online (Sandbox Code Playgroud)

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

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


dvi*_*sor 6

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

sudo apt install libpoco-dev
Run Code Online (Sandbox Code Playgroud)

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

#include <Poco/Net/MailMessage.h>
Run Code Online (Sandbox Code Playgroud)

您将需要以下开关:

-lPocoNet -lPocoFoundation
Run Code Online (Sandbox Code Playgroud)

英语:

g++ main.cpp -Wall -std=c++11 -o pocotest -lPocoNet -lPocoFoundation
Run Code Online (Sandbox Code Playgroud)