如何使用POCO线程

How to use POCO threads?

本文关键字:线程 POCO 何使用      更新时间:2023-10-16

我开始使用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:UsersMworkspacePocoDebug/../src/Poco.cpp:18: undefined reference to `Poco::ThreadTarget::ThreadTarget(void (*)())'
C:UsersMworkspacePocoDebug/../src/Poco.cpp:19: undefined reference to `Poco::Thread::Thread()'
C:UsersMworkspacePocoDebug/../src/Poco.cpp:20: undefined reference to `Poco::Thread::start(Poco::Runnable&)'
C:UsersMworkspacePocoDebug/../src/Poco.cpp:19: undefined reference to `Poco::Thread::~Thread()'
C:UsersMworkspacePocoDebug/../src/Poco.cpp:18: undefined reference to `Poco::ThreadTarget::~ThreadTarget()'
C:UsersMworkspacePocoDebug/../src/Poco.cpp:19: undefined reference to `Poco::Thread::~Thread()'
C:UsersMworkspacePocoDebug/../src/Poco.cpp:18: undefined reference to `Poco::ThreadTarget::~ThreadTarget()'

我认为这些来自于我对POCO线程的了解中的一些基本缺陷。有人能提供一个工作程序,或者更好的解释POCO线程是如何工作的吗。文档虽然内容丰富,但并没有解释线程中涉及的多个类作为一个整体的作用。

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

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