Ich möchte mit tbb :: task_scheduler_observer in eine tbb :: task_arena einhaken. Laut der Dokumentation sollte dies wie shown here funktionieren. Aber wenn ich versuche, den folgenden CodeFehler beim Verlinken mit tbb :: task_arena und tbb :: task_scheduler_observer
#define TBB_PREVIEW_TASK_ARENA 1
#include "tbb/task_scheduler_observer.h"
#include "tbb/task.h"
#include "tbb/task_arena.h"
class MyObserver : public tbb::task_scheduler_observer
{
public:
MyObserver(tbb::task_arena &a) : tbb::task_scheduler_observer(a)
{
observe(true); // activate the observer
}
/*override*/ void on_scheduler_entry(bool worker)
{
// Do something here
}
/*override*/ void on_scheduler_exit(bool worker) { }
};
und
#define TBB_PREVIEW_TASK_ARENA 1
#include "tbb/task_arena.h"
int main()
{
tbb::task_arena a;
MyObserver my(a);
}
ich eine
undefined refference to `tbb::task_arena::internal_terminate()`
Fehler zu kompilieren. Andere tbb-Funktionen (und Klassen) funktionieren gut, wenn sie mit dem -ltbb-Flag kompiliert werden.
Ich benutze Ubuntu 14.04 und g ++ 4.8.4 mit -std = C++ 11 aktiviert.
Wich Linie geben Sie den Fehler? Ich meine: Sie haben denselben Fehler, wenn Sie die Zeile "MyObserver my (a);" kommentieren? – max66
Ja. Es kommt immer noch vor. – sQu4rks
Dies passiert, wenn Sie falsche Version von Libtbb verknüpfen. Verbindest du es überhaupt? Bitte zeigen Sie Ihren Link-Befehl – Anton