Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.
7956 Discussions

Building boost c++ libraries with ICC12 and VS2010

renorm
Beginner
329 Views
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
329 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.
0 Kudos
Brandon_H_Intel
Employee
329 Views
0 Kudos
trekker99
Beginner
329 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.


0 Kudos
Reply