Я пытаюсь получить базовый пример ApplicationServer от poco working.Я использую:
Windows 7 MinGW Poco Eclipse c ++
Так что после множества взломов и настроек у меня в итоге все заработало.Но я не знаю, что сделали мои хаки, и я хочу правильное решение, а не мой хак.
Проблема, с которой я столкнулся, заключается в том, что она дает мне «неразрешенную ссылку на XX» при сборке,Они появляются из библиотек poco, они не являются тем, что я использую в своем коде.В моем файле Server.cpp мой хак состоял в том, чтобы пройти через все упомянутые классы и использовать их.Просто объявить их недостаточно, я должен фактически использовать объект.Как только я использовал все, на что он жаловался, он компилируется и запускается, как и ожидалось.Это похоже на поведение, которое будет указывать на простое конфигурационное решение для того, кто знает, что происходит.
Вещи, которые я думаю, я могу сделать вывод:
- Библиотеки Poco были построены правильноони работают, когда у меня есть этот хак)
- MinGW работает нормально
- Возможно, настройка eclipse не правильно связывает вещи.
Итак, мой вопрос:Кто-нибудь знает, что это неправильно, что может вызвать такое поведение?Как мне поставить «чистое» решение этой проблемы, а не мой недопустимо грязный хак?
Мой взломанный основной, который обходит проблему:
int main(int argc, char** argv)
{
std::cout << "test1" << std::endl;
std::cout.flush();
AgentServer app;
app.run(argc, argv);
LoggingFactory::defaultFactory();
AutoPtr<ConsoleChannel> pCCChannel(new ConsoleChannel);
AutoPtr<FileChannel> pChannel(new FileChannel);
pChannel->setProperty("path", "sample.log");
pChannel->setProperty("rotation", "2 K");
pChannel->setProperty("archive", "timestamp");
Logger::root().setChannel(pChannel);
Logger& logger = Logger::get("TestLogger"); // inherits root channel
poco_warning(logger, "This is a warning");
try
{
Path myPath = new Path();
poco_warning(logger, myPath.current());
int i = NumberParser::parse("5");
FileOutputStream myFileOutputStream("test.file");
myFileOutputStream << "test";
OutputLineEndingConverter conv(myFileOutputStream," ");
std::stringstream xmlstream("test");
UTF8Encoding myUTF8Encoding;
XMLWriter writer(xmlstream,0,"UTF-8", &myUTF8Encoding);
std::ostringstream ostr1("test2");
OutputStreamConverter converter1(ostr1,myUTF8Encoding,myUTF8Encoding);
URI uri;
uri.getHost();
URIStreamOpener opener;
opener.open(uri);
} catch(...)
{
poco_warning(logger, "Swallowing exception");
}
//poco_warning(logger,);
//AgentServer app;
//return app.run(argc, argv);
}