Я установил POCO через emerge и при первой же попытке компилирования получаю
undefined reference to `Poco::RefCountedObject::RefCountedObject()
Который ясно указал, что не находит библиотеки.
Не появляется ли связь для вас?
Как мне скомпилировать или правильно связать POCO в Gentoo, чтобы он нашел библиотеки?
#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 имеет флаги использования, которые включают некоторые части 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 websockets !!!!!!!!!!!!!!