2

我开始使用 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 线程是如何工作的。该文档虽然内容广泛,但并未解释线程中涉及的多个类作为一个整体做什么。

4

1 回答 1

4

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

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

于 2012-08-22T20:43:05.827 回答