0

我已经从网站上的 zip 文件中提取了源代码并将它们放在 Code::Blocks 的“包含”文件夹中,但即便如此它也无法编译提供的“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 回答