如何使用POCO线程?

时间:2012-08-22 20:22:51

标签: c++ poco-libraries

我开始使用POCO并查看了线程的文档。由此,我创建了一个似乎不起作用的测试程序:

#include <iostream>
#include <Poco/Thread.h>
#include <Poco/ThreadTarget.h>
using namespace std;

void myfunc(){
 cout << "test";
}
int main(){
    Poco::ThreadTarget ra(&myfunc);
    Poco::Thread thr;
    thr.start(ra);
    return 0;
}

我收到这些错误:

C:\Users\M\workspace\Poco\Debug/../src/Poco.cpp:18: undefined reference to `Poco::ThreadTarget::ThreadTarget(void (*)())'
C:\Users\M\workspace\Poco\Debug/../src/Poco.cpp:19: undefined reference to `Poco::Thread::Thread()'
C:\Users\M\workspace\Poco\Debug/../src/Poco.cpp:20: undefined reference to `Poco::Thread::start(Poco::Runnable&)'
C:\Users\M\workspace\Poco\Debug/../src/Poco.cpp:19: undefined reference to `Poco::Thread::~Thread()'
C:\Users\M\workspace\Poco\Debug/../src/Poco.cpp:18: undefined reference to `Poco::ThreadTarget::~ThreadTarget()'
C:\Users\M\workspace\Poco\Debug/../src/Poco.cpp:19: undefined reference to `Poco::Thread::~Thread()'
C:\Users\M\workspace\Poco\Debug/../src/Poco.cpp:18: undefined reference to `Poco::ThreadTarget::~ThreadTarget()'

我认为这些来自我对POCO线程的一些基本缺陷。有人可以提供一个工作程序,或更好的解释POCO线程的确切工作方式。虽然文档很广泛,但它并没有解释线程涉及的多个类作为一个整体。

1 个答案:

答案 0 :(得分:3)

您的错误看起来像链接器错误。根据此处的文档http://pocoproject.org/docs/Poco.Thread.html,您需要确保链接到PocoFoundation库。也许你已经这样做但如果没有你需要。

您没有指定您正在使用的操作系统,但如果您使用的是g ++,请尝试将-lPocoFoundation添加到构建指令以链接到库并提供该库的路径。如果使用Windows,请将PocoFoundation.lib添加到项目中。