Community
cancel
Showing results for 
Search instead for 
Did you mean: 
renorm
Beginner
136 Views

Building boost c++ libraries with ICC12 and VS2010

I tried to build Boost 1.46.1 with the following:
Visual C++ 2010 SP1, ICC 12.0 update 4, Target Intel64, OS Windows Vista 64.

The command line looked something like this:
[bash]bjam -d0 --build-dir="intel64_obj" stage --stagedir="stage" --toolset=intel address-model=64 \
variant=release --build-type=complete threading=multi --without-wave --without-python --without-mpi \
--without-graph --without-graph_parallel [/bash]

Several binaries couldn't be built. I had no problems building with ICC12 & Visual C++ 2008 for IA32. Did anyone else had problems build boost with Visual C++ 2010 and ICC 12?
0 Kudos
3 Replies
Brandon_H_Intel
Employee
136 Views

OK, I was able to reproduce this, and the problem seems to be that the Boost configuration for the Intel compiler is finding that it can use scoped enums since the Intel compiler can support them in Visual Studio 2010 mode with C++0x support, but then doesn't add /Qstd=c++0x to the command line which is required for the Intel compiler to use C++0x features. I was able to work around your problem by going to \tools\build\v2\tools\intel-win.jam and changing the line:

C++FLAGS += /nologo ;

to

C++FLAGS += /nologo /Qstd=c++0x ;

I'll see if I can report this to Boost.
Brandon_H_Intel
Employee
136 Views

trekker99
Beginner
136 Views

I actually brought this up a while back here: https://svn.boost.org/trac/boost/ticket/5406

Isn't the real reason why there was a compilation error in this case was due to the fact that VS2010 doesn't support scoped enums while Intel does, but requires requires the /Qstd=c++0x? If VS2010 supported scoped enums, this wouldn't have appeared.


Reply