Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Intel TBB link question

I'm not quite sure how to pose this question because I'm so thoroughly confused by it, so I'll just jump right into it.

I have a simple little chunk of code that basically just grabs data from a text repository on disk. When I first started I had it in a single threaded process and it linked and worked just fine. Then I decided to thread it using tbb's parallel_for. I wrote the "Apply" constructor and overloaded the operator() and simply copy-and-pasted the for loop that originally worked into the operator() function and the only change I made was to the iteration space of the for loop. Now when I compile it, it throws an undefined reference to a function inside the for loop. What's really confusing is that other functions in the library that also contains the undefined function work just fine. I know this is a horrible description of the problem, was just hoping that someone else may have had a similar error and may give me some insight as to what is going on. And yes, ApplyParser does include the .h file in which storage_read is defined.

Thank you.

Here's the actual link error that it is throwing:
./src/PercyIndexer.o: In function `ApplyParser::operator()(tbb::blocked_range const&) const':[ApplyParser::operator()(tbb::blocked_range const&) const]+0xf3): undefined reference to `storage_read(storage_t*, unsigned long, char*, long*)'
./src/PercyIndexer.o: In function `tbb::internal::start_for<:BLOCKED_RANGE>, ApplyParser>::execute()':[tbb::internal::start_for<:BLOCKED_RANGE>, ApplyParser>::execute()]+0x1d5): undefined reference to `storage_read(storage_t*, unsigned long, char*, long*)'
0 Kudos
0 Replies