0

Web サイトの zip ファイルからソースを抽出し、Code::Blocks の「include」フォルダーに配置しましたが、提供された「hello.cpp」の例をコンパイルできません。

(参考のため:)

#include <iostream>
#include <tinythread.h>

using namespace std;
using namespace tthread;


// This is the child thread function
void HelloThread(void * aArg)
{
  cout << "Hello world!" << endl;
}

// This is the main program (i.e. the main thread)
int main()
{
  // Start the child thread
  thread t(HelloThread, 0);

  // Wait for the thread to finish
  t.join();
}

そして、これらは次のエラーです。

|41|undefined reference to `tthread::thread::thread(void (*)(void*), void*)'|
|44|undefined reference to `tthread::thread::join()'|
|44|undefined reference to `tthread::thread::~thread()'|
|44|undefined reference to `tthread::thread::~thread()'|

同じことが wxDev-C++ でも起こります。何か足りないのですか?たとえば、ライブラリなどを構築する必要がありますか? もしそうなら、どのように?

4

2 に答える 2

3

アーカイブ内のreadme.txtから:

TinyThread++の使用

独自のプロジェクトでTinyThread++を使用するには、プロジェクトにtinythread.cppとtinythread.hを追加するだけです。独自のコードで、次のようにします。

#include <tinythread.h>
using namespace tthread;

fast_mutexクラスを使用する場合は、fast_mutex.hを含めます。

#include <fast_mutex.h>

.cppはコンパイルされないため、ヘッダーを含めるだけでは未解決のシンボルになります。

于 2012-11-10T02:00:08.737 に答える
0

TinyThread は小さいです。

ヘッダーを含めるだけでなく、TinyThread.cpp をプロジェクトに追加するか、プロジェクトの一部としてビルドするようにします。

プロジェクトに CPP ファイルを追加するまで、特定のエラーが VC++ で発生しました。

そうしないと、スレッド クラスとメソッドがコンパイルされませんでした。

于 2013-05-16T22:06:22.640 に答える