User forums > Help

Configuring Boost with Code::Blocks

<< < (3/6) > >>

ptolomey:
I have problems with Code::Blocks configuration for Boost.

Description of problem:
 
1. During compilation of code supplied by Alpha, following error messages are appear  (have no compilation problems if not using Boost)
        a) C:\Program Files\CodeBlocks\Boost\include\boost-1_47\boost\lambda\detail\lambda_functor_base.hpp|227|  [ skipping 6 instantiation contexts ]|

        b) C:\Program Files\CodeBlocks\Boost\include\boost-1_47\boost\lambda\detail\operator_lambda_func_base.hpp:60|56|instantiated from 'boost::lambda::detail::binary_rt<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::arithmetic_action<boost::lambda::multiply_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::placeholder<1> >, const int, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::null_type, boost::tuples::nu|
   
        c) C:\Program Files\CodeBlocks\Boost\include\boost-1_47\boost\lambda\detail\lambda_functors.hpp:202|50|instantiated from 'typename inherited::sig<boost::tuples::tuple<const A&> >::type boost::lambda::lambda_functor<Base>::operator()(const A&) const [with A = int, T = boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::lamb|

        d) c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.5.2\include\c++\bits\stl_algo.h:4185|2|instantiated from '_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = std::istream_iterator<int>, _Funct = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boo|

2) Used software versions
      a. Code::Blocks 10.05
      b. MinGW 4.6
      c. Boost 1.47.0

3) Boost libraries were built after several manipulations described below
      a. In file \boost_1_47_0\bootstrap.bat line set toolset=msvc was replaced with line set toolset=gcc
      b. In file \boost_1_47_0\tools\build\v2\engine\build.bat under the procedure :Guess_toolset updates the MinGW entry to point to the correct folder:
         
 
--- Code: ---          call :Clear_Error
          if EXIST "C:\Program Files\CodeBlocks\MinGW\bin\gcc.exe" (
          set "BOOST_JAM_TOOLSET=mingw"
          set "BOOST_JAM_TOOLSET_ROOT=C:\Program Files\CodeBlocks\MinGW\"
          goto :eof)

--- End code ---
         
 
      c. In file \boost_1_47_0\tools\build\v2\engine\build.bat, removed all other blocks of code similar to the above codeblock from the procedure :Guess_toolset
      d. Compiled and Built the Boost C++ Library binaries
           i. In CMD (command line) enter the command: c:\boost_1_47_0\bootstrap.bat, it successfully built the executable Bjam.exe
          ii. To build the Boost Library binaries entered command in CMD:
                 
--- Code: ---bjam --toolset=gcc --build-type=complete "--prefix=C:\Program Files\CodeBlocks\Boost" install
--- End code ---

  following Boost directories hierarchy was created:
         
        c:\Program Files\CodeBlocks\boost\
                                                        lib   (contain built libraries, only files with extension *.a)
                                                        include\boost-1_47\boost\...  (header files and e.t.c)

4. Setting Code::Blocks Global Variables         
     a. In Global Variable Editor defined new Variables
             i. In Current Set clicked on New button and entered variable name boost
            ii. In Current Variable clicked on New button and entered variable name boost
           iii. In filed base entered following path: C:\Program Files\CodeBlocks\Boost\include\boost-1_47
           iv. In field lib entered following path: C:\Program Files\CodeBlocks\Boost\lib

5. Setting Code::Blocks Project Build Options
     a. In Project->Build options...
            i. Ensured that the overall name of the project is selected in the left-hand column
           ii. In Search directories tab Compiler sub-tab filed entered $(#boost)
          iii. In Search directories tab Linker sub-tab filed entered $(#boost.lib)

Alpha:

--- Quote from: ptolomey on October 18, 2011, 07:04:43 pm ---        d) c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.5.2\include\c++\bits\stl_algo.h:4185|2|instantiated from '_Funct std::for_each(_IIter, _IIter, _Funct) [with _IIter = std::istream_iterator<int>, _Funct = boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boost::lambda::bitwise_action<boost::lambda::leftshift_action>, boost::tuples::tuple<std::basic_ostream<char>&, boost::lambda::lambda_functor<boost::lambda::lambda_functor_base<boo|

--- End quote ---

--- Quote from: ptolomey on October 18, 2011, 07:04:43 pm ---2) Used software versions
      a. Code::Blocks 10.05
      b. MinGW 4.6
      c. Boost 1.47.0

--- End quote ---
It looks like you may have two conflicting MinGW installations.
(I just tested the code with 4.6; it compiled with zero warnings or errors).

Note: error messages are more readable when enclosed in code tags.

ptolomey:
Alpha thanks for advise,
I have installed Qt SDK (4.7), it comes with MinGW 4.5, built inside package.
I will uninstall it and try to compile above mentioned code one more time

--- Code: ---#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>

int main()
{
    using namespace boost::lambda;
    typedef std::istream_iterator<int> in;

    std::for_each(
        in(std::cin), in(), std::cout << (_1 * 3) << " " );
}

--- End code ---

In any case thanks for advise.
I will response if succeeded or not.

ptolomey:
Finally I succeeded.
The only mistake was in definition of CodeBlocks Search Directories of Compiler.
It has to be: $(#boost.include) and NOT $(#boost) as written in Wiki http://wiki.codeblocks.org/index.php?title=BoostWindowsQuickRef

Master:
hello all , i have the same problem getting boost to work with CB .
i can compile this source code :

--- Code: ---#include <boost/lambda/lambda.hpp>
#include <iostream>
#include <iterator>
#include <algorithm>

int main()
{
    using namespace boost::lambda;
    typedef std::istream_iterator<int> in;

    std::for_each(
        in(std::cin), in(), std::cout << (_1 * 3) << " " );
}

--- End code ---

i used these command to compile boost :
boost is extracted to F:\
and main folder address is :

--- Code: ---F:\boost_1_49_0
--- End code ---
here are the commands :

--- Code: ---F:\
F:\ cd Boost_1_44_0
F:\ Boost_1_44_0> bootstrap.bat
F:\ Boost_1_44_0>bjam toolset=gcc --build-type=complete stage

--- End code ---
-------------------
the above didnt do any good so i wrote this and actually compiled just fine :

--- Code: ---F:\ Boost_1_44_0>bjam variant=debug,release link=static address-model=32
--- End code ---
and then

--- Code: ---F:\boost_1_49_0>bjam toolset=gcc variant=debug,release link=static threading=multi address-model=32 --build-type=complete stage
--- End code ---
then when i tried to compile a thread example :

--- Code: ---#include <boost/thread.hpp>
#include <iostream>

void wait(int seconds)
{
  boost::this_thread::sleep(boost::posix_time::seconds(seconds));
}

boost::mutex mutex;

void thread()
{
  for (int i = 0; i < 5; ++i)
  {
    wait(1);
    mutex.lock();
    std::cout << "Thread " << boost::this_thread::get_id() << ": " << i << std::endl;
    mutex.unlock();
  }
}

int main()
{
  boost::thread t1(thread);
  boost::thread t2(thread);
  t1.join();
  t2.join();
}
--- End code ---

which failed miserably with these errors :

--- Code: ---obj\Debug\main.o||In function `Z6threadv':|
D:\Documents and Settings\Master\My Documents\Projects\Boost Example\main.cpp|18|undefined reference to `_imp___ZN5boost11this_thread6get_idEv'|
obj\Debug\main.o||In function `main':|
D:\Documents and Settings\Master\My Documents\Projects\Boost Example\main.cpp|27|undefined reference to `_imp___ZN5boost6thread4joinEv'|
D:\Documents and Settings\Master\My Documents\Projects\Boost Example\main.cpp|28|undefined reference to `_imp___ZN5boost6thread4joinEv'|
D:\Documents and Settings\Master\My Documents\Projects\Boost Example\main.cpp|28|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Documents and Settings\Master\My Documents\Projects\Boost Example\main.cpp|28|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Documents and Settings\Master\My Documents\Projects\Boost Example\main.cpp|28|undefined reference to `_imp___ZN5boost6threadD1Ev'|
D:\Documents and Settings\Master\My Documents\Projects\Boost Example\main.cpp|28|undefined reference to `_imp___ZN5boost6threadD1Ev'|
F:\boost_1_49_0\boost\thread\win32\thread_data.hpp|161|undefined reference to `_imp___ZN5boost11this_thread18interruptible_waitEPvNS_6detail7timeoutE'|
obj\Debug\main.o||In function `thread<void (*)()>':|
F:\boost_1_49_0\boost\thread\detail\thread.hpp|205|undefined reference to `_imp___ZN5boost6thread12start_threadEv'|
||=== Build finished: 9 errors, 0 warnings (0 minutes, 49 seconds) ===|



--- End code ---


i configured CB like this :
right clicked on the active project >build options >Debug>Search Directories >Compiler:
added these:

--- Code: ---$(#boost.include)
F:\boost_1_49_0
F:\boost_1_49_0\boost
F:\boost_1_49_0\stage\lib

--- End code ---
and under linker i added:

--- Code: ---$(#boost.lib)
F:\boost_1_49_0\stage\lib
F:\boost_1_49_0\libs

--- End code ---
then i added to the Linker section and selected all of the files in stage/libs : these are :
here is the pic :

and for the variable part :
i have this :

--------------------------
what is it that i am missing ?

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version