首次在Gentoo上使用POCO C++库
First time POCO C++ library use on Gentoo
我通过emerge安装了POCO,第一次尝试编译时我就得到了
undefined reference to `Poco::RefCountedObject::RefCountedObject()
这清楚地表明它没有找到图书馆。没有出现为你做链接吗?
如何在Gentoo中编译或正确链接POCO,以便它找到libs?
#include "Poco/ActiveMethod.h"
#include "Poco/ActiveResult.h"
#include <utility>
#include <iostream>
using Poco::ActiveMethod;
using Poco::ActiveResult;
class ActiveAdder
{
public:
ActiveAdder(): add(this, &ActiveAdder::addImpl)
{
}
ActiveMethod<int, std::pair<int, int>, ActiveAdder> add;
private:
int addImpl(const std::pair<int, int>& args)
{
return args.first + args.second;
}
};
int main(int argc, char** argv)
{
ActiveAdder adder;
ActiveResult<int> sum = adder.add(std::make_pair(1, 2));
// do other things
sum.wait();
std::cout << sum.data() << std::endl;
return 0;
}
POCO gentoo-ebuild具有use标志,这些标志启用了POCO的某些部分。
feniks@charlotte ~ equery uses poco
[ Legend : U - final flag setting for installation]
[ : I - package is installed with flag ]
[ Colors : set, unset ]
* Found these USE flags for dev-libs/poco-1.6.0:
U I
+ + 7z : <unknown>
+ + apache2 : Add Apache2 support
+ + cppparser : <unknown>
+ + crypto : <unknown>
+ + data : <unknown>
+ + doc : Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead
of globally
+ + file2pagecompiler : <unknown>
- - iodbc : Add support for iODBC library
+ + json : <unknown>
- - mongodb : <unknown>
+ + mysql : Add mySQL Database support
+ + net : <unknown>
- - odbc : Add ODBC Support (Open DataBase Connectivity)
+ + pagecompiler : <unknown>
+ + pdf : Add general support for PDF (Portable Document Format), this replaces the pdflib and cpdflib
flags
+ + sqlite : Add support for sqlite - embedded sql database
+ + ssl : Add support for Secure Socket Layer connections
+ + tests : <unknown>
+ + util : <unknown>
+ + xml : Add support for XML files
+ + zip : <unknown>
此外,您应该将您的程序与poco本身链接起来。PocoFoundation中的所有基本类(就像您的情况一样)。
例如,这里是我的链接标志(由CMake生成):
test.o /usr/lib64/libPocoJSON.so.30 /usr/lib64/libPocoXML.so.30 -lboost_program_options-mt -lboost_locale-mt -lboost_system-mt -lboost_filesystem-mt cpsp/libtinyhttp_cpsp.a api/libtinyhttp_api.a /usr/lib64/libPocoFoundation.so.1.6.0 -lpcre -lz -lpthread -ldl -lrt -lexpat
使用QT网络套接字!!!!!!!!!!!!!!
相关文章:
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- Poco FindMySql.cmake 无法找到 MySQL 源代码
- 像 POCO 这样的C++图书馆如何访问网络?
- Poco::Net::FTPClientSession 在 open() 方法上挂起 129 秒,如果 ftp 主机不存
- 使用 Poco::Zip 将文件附加到现有 zip 文件
- 无法使用 Poco 库正确克隆 JSON 数组C++
- Poco 库 PUT 方法未按预期工作,尽管主机、方法、内容类型设置正确
- POCO C++对象到 JSON 字符串序列化
- 错误:字段'dateOfBirth'的类型不完整'Poco::Data::Date'
- POCO C++加密/解密
- C++ POCO - 如何在不使用 run() 方法的情况下启动线程池上的线程?
- 使用 Poco::zip 添加新目录始终给出异常
- C++ Poco - 如何创建通知队列的向量?
- 如何使用 Poco::ZIP 压缩/解压缩 zip 文件
- C++ POCO - 如何美化 JSON?
- C++ Poco - 如何向特定线程发送通知/消息?
- 如何在 Poco 中将工作 HTTP 代码转换为 HTTPS
- 对于 poco 库来说,Boost_USE_STATIC_LIBS相当于什么?
- 与Poco库的Websocket连接
- 在C++中使用POCO和grain对多个对象进行反序列化