Poco ApplicationServer将问题与Eclipse和Mingw联系起来

时间:2011-08-31 15:03:09

标签: c++ eclipse mingw poco-libraries

我正在尝试从poco工作中获取基本的ApplicationServer示例。我正在使用:

Windows 7 MinGW的 波科 日食 C ++

因此,经过一系列的黑客攻击和设置后,我终于开始工作了。但我不知道我的黑客做了什么,我想要一个合适的解决方案,而不是我的黑客。

我遇到的问题是,当我构建时,它给了我一堆“未解析的XX”。这些是从poco库中弹出的,它们不是我在代码中使用的东西。 我的hack已经在我的Server.cpp中查看了引用的每个类,并使用它们。仅仅声明它们是不够的,我必须实际使用该对象。一旦我使用了它抱怨的所有内容,它就会编译并按预期运行。对于知道发生了什么的人来说,这似乎是一种简单的配置解决方案。

我认为我可以得出结论:

  • poco库已经构建正确(一旦我有这个hack就可以工作)
  • MinGW正常工作
  • 日食设置可能没有把事情联系起来。

所以我的问题是:有谁知道设置错误是什么,这可能会导致这种行为?我如何为此设置一个“干净”的解决方案,而不是我不可接受的凌乱黑客?

My Hacked main解决了这个问题:

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);
}

1 个答案:

答案 0 :(得分:0)

当你构建poco时,你会得到一个名为“lib”的文件夹。因此,让链接器指向包含poco所有库的文件夹。现在不存在任何链接错误。 如果它说* .dll文件丢失:

  • 然后将文件夹“(pocobuild path)\ bin”中的内容复制到项目构建位置.Else,
  • 将“(pocobuild path)\ bin”路径添加到环境变量(PATH)。