Boost logo

Boost Users :

From: Sergey.Tsyrulnikov_at_[hidden]
Date: 2008-03-26 09:37:09


I try to compile a simple thread_group-example with Borland C++ 5.6 for
Win32. I get the following link error:

 

Error: Unresolved external 'boost::thread_group::create_thread(const
boost::function0<void, std::allocator<boost::function_base> >&)'
referenced from

C:\BACPP\SERVICEADAPTER\SRC\SERG.OBJ

 

I have built the boost_thread-bcb-mt-1_34_1.lib with Bjam and Borland.

The examples can be created with the library.

 

The MSVC-Variant works without errors.

 

Link-Call:

        C:\Programme\Borland\CBuilder6\BIN\ILINK32 -Tpe -r -ap -Gn
C:\Programme\Borland\CBuilder6\lib\C0X32.OBJ /v
-L..\..\Extern\BCB582\BDP\lib -L..\

..\Xerces\lib\BCB582 -L..\..\Boost\lib\BCB582
-L..\..\LogEngineBA\lib\BCB582 -LC:\Programme\Borland\CBuilder6\lib
serg.obj /LIBPATH:..\..\Extern\BC

B582\BDP\lib orb_br.lib vdlog_br.lib vport_br.lib
/LIBPATH:..\..\Xerces\lib\BCB582 xerces-bor_2_7_0.lib
/LIBPATH:..\..\Boost\lib\BCB582 boost_thread-b

cb-mt-1_34_1.lib /LIBPATH:..\..\LogEngineBA\lib\BCB582 LogEngine.lib
C:\Programme\Borland\CBuilder6\lib\import32.lib
C:\Programme\Borland\CBuilder6\li

b\cw32mti.lib , serg.exe

Turbo Incremental Link 5.60 Copyright (c) 1997-2002 Borland

Error: Unresolved external 'boost::thread_group::create_thread(const
boost::function0<void, std::allocator<boost::function_base> >&)'
referenced from

C:\BACPP\SERVICEADAPTER\SRC\SERG.OBJ

RLINK32 Version 6.00 (c) Copyright 1992-2002 Borland Software
Corporation.

 

 

Source:

#include <iostream>

#include <stdio>

 

#include <boost/thread/thread.hpp>

#include <boost/bind.hpp>

#include <boost/smart_ptr.hpp>

#include <vector>

 

using namespace std ;

void doCallThreads(std::string text){

            printf("Start Thread .......%s\n", text);

}

 

void doCallThreadsXXX(){

            printf("Start Thread .......\n");

}

 

void doCallsWithThreads(const int countThreads){

 

// std::vector<boost::thread *> threads;

 

            boost::thread_group threads;

            for(int i = 0; i<countThreads; i++){

 

            //threads.create_thread(boost::bind(doCallThreads, "hhh"));

            threads.create_thread(&doCallThreadsXXX);

// threads.create_thread(&doCallThreadsXXX);

                        printf("Thread %d gestartet\n", (i+1));

            }

            printf("All threads started\n");

            // Warten bis alle thread fertig sind

            threads.join_all();

            printf("All threads stopped\n");

}

 

int main(int argc, char* const* argv) {

  try {

            doCallsWithThreads(5);

            cout << "ENDE" << endl ;

  }

  catch(std::exception ex)

  {

    cout << "Error: " << ex.what() << endl ;

    throw;

  }

  catch(...)

  {

    cout << "Error" ;

    throw;

  }

  return 0 ;

}

 

 

Any idea?????



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net