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ライブラリにリンクしていることを確認する必要があります。多分あなたはすでにそれをしているでしょう、しかしそうでなければあなたはそうする必要があります。

使用しているOSを指定しませんが、g ++を使用している場合は-lPocoFoundation、ビルド手順に追加してライブラリにリンクし、そのライブラリへのパスを指定してみてください。Windowsを使用している場合PocoFoundation.libは、プロジェクトに追加します。

于 2012-08-22T20:43:05.827 に答える