- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I try to copy the lib and header files to gcc and write a simple test program, shown as below:
//############################
#include "tbb/task_scheduler_init.h"
using namespace tbb;
static const size_t N = 23;
int main() {
task_scheduler_init init;
return 0;
}
//############################
when I compiled it, with "gcc xxx.cpp", such errors were reported, shown as below:
//#############################
/tmp/ccWKfzHj.o: In function `tbb::task_scheduler_init::task_scheduler_init(int)':
compute_pi.cpp:(.text._ZN3tbb19task_scheduler_initC1Ei[tbb::task_scheduler_init::task_scheduler_init(int)]+0x28): undefined reference to `tbb::task_scheduler_init::initialize(int)'
/tmp/ccWKfzHj.o: In function `tbb::task_scheduler_init::~task_scheduler_init()':
compute_pi.cpp:(.text._ZN3tbb19task_scheduler_initD1Ev[tbb::task_scheduler_init::~task_scheduler_init()]+0x16): undefined reference to `tbb::task_scheduler_init::terminate()'
/tmp/ccWKfzHj.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
//#############################
Anybody can tell me how to deal with it?
Thanks in advance.
//############################
#include "tbb/task_scheduler_init.h"
using namespace tbb;
static const size_t N = 23;
int main() {
task_scheduler_init init;
return 0;
}
//############################
when I compiled it, with "gcc xxx.cpp", such errors were reported, shown as below:
//#############################
/tmp/ccWKfzHj.o: In function `tbb::task_scheduler_init::task_scheduler_init(int)':
compute_pi.cpp:(.text._ZN3tbb19task_scheduler_initC1Ei[tbb::task_scheduler_init::task_scheduler_init(int)]+0x28): undefined reference to `tbb::task_scheduler_init::initialize(int)'
/tmp/ccWKfzHj.o: In function `tbb::task_scheduler_init::~task_scheduler_init()':
compute_pi.cpp:(.text._ZN3tbb19task_scheduler_initD1Ev[tbb::task_scheduler_init::~task_scheduler_init()]+0x16): undefined reference to `tbb::task_scheduler_init::terminate()'
/tmp/ccWKfzHj.o:(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'
collect2: ld returned 1 exit status
//#############################
Anybody can tell me how to deal with it?
Thanks in advance.
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
First of all, you can't run C++ without C++ libraries, so you should be using g++ rather than gcc. You would also have to link tbb libraries,
for example by using the provided setup script to set the library path.
for example by using the provided setup script to set the library path.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks.
I've changed to use g++ instead.
But the problem still happen.
I found that's because of this sentence "task_scheduler_init init;".
When I deleted it, everything became OK.
It seems the tbb lib didn't work, right?
I just copied the header file to /usr/lib/gcc/i486-linux-gnu/4.1/include,
and the lib files to /lib and /usr/lib and /usr/lib/gcc/i486-linux-gnu/4.1
Is this correct?
Or what should I do?
I didn't find any detailed instruction.
I've changed to use g++ instead.
But the problem still happen.
I found that's because of this sentence "task_scheduler_init init;".
When I deleted it, everything became OK.
It seems the tbb lib didn't work, right?
I just copied the header file to /usr/lib/gcc/i486-linux-gnu/4.1/include,
and the lib files to /lib and /usr/lib and /usr/lib/gcc/i486-linux-gnu/4.1
Is this correct?
Or what should I do?
I didn't find any detailed instruction.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The undefined references are defined by the TBB run-time library. To satisfy the references, you must link against libtbb.so or libtbb_debug.so run-time libraries.
To build the run-time libraries, go to the top-level directory of the TBB package and type "gmake". This will build the libraries. Do "ls build/*/*.so" to see where they were built. To link against one of the libraries, do one of the following:
- Put the library explicitly on the gcc command line.
- Or use the gcc options "-L(path)" and "-ltbb" [or -ltbb_debug] to specify the library directory and name respectively.
- Or use one of the "tbbvars.*" scripts to set your environment variables. For example, I'm a csh user, so I cd to the directory where the library was built and use "source tbbvars.csh" to set my environment variables.
- Arch
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page