Problems with building Boost on Windows with Intel C++ Compiler

Problems with building Boost on Windows with Intel C++ Compiler


I am trying to build Boost 1.55 on Windows with the instructions I found here:

So after I do the bootstrap from the Intel cmd prompt, I do:

D:\vs2013 projects\boost_1_55_0>bjam toolset=intel address-model=32

I get a ton of errors like this:

call "C:\Program Files (x86)\Intel\composer xe 2013 sp1\bin\intel64//iclvars
.bat" > nul
icl @"bin.v2\libs\chrono\build\intel-win\debug\address-model-32\link-static\thre

...failed compile-c-c++ bin.v2\libs\chrono\build\intel-win\debug\address-model-3
compile-c-c++ bin.v2\libs\chrono\build\intel-win\debug\address-model-32\link-sta
'"C:\Program Files (x86)\Intel\composer xe 2013 sp1\bin\intel64//iclvars.bat"' i
s not recognized as an internal or external command,
operable program or batch file.
Command-line error: invalid Microsoft version number: 89

compilation aborted for libs\chrono\src\process_cpu_clocks.cpp (code 4)

I noticed that the iclvars.bat is not in the directory "C:\Program Files (x86)\Intel\composer xe 2013 sp1\bin\intel64" as it is in one directory back at "C:\Program Files (x86)\Intel\composer xe 2013 sp1\bin", so I made a copy of it and put it in the intel64 directory and ran again. I still get errors:


compile-c-c++ bin.v2\libs\atomic\build\intel-win\debug\address-model-32\link-sta
Command-line error: invalid Microsoft version number: 89

compilation aborted for libs\atomic\src\lockpool.cpp (code 4)

    call "C:\Program Files (x86)\Intel\composer xe 2013 sp1\bin\intel64//iclvars
.bat" > nul
icl @"bin.v2\libs\atomic\build\intel-win\debug\address-model-32\link-static\thre

...failed compile-c-c++ bin.v2\libs\atomic\build\intel-win\debug\address-model-3
...skipped <pbin.v2\libs\atomic\build\intel-win\debug\address-model-32\link-stat
ic\threading-multi>libboost_atomic-iw-mt-gd-1_55.lib for lack of <pbin.v2\libs\a
...skipped <pstage\lib>libboost_atomic-iw-mt-gd-1_55.lib for lack of <pbin.v2\li
compile-c-c++ bin.v2\libs\system\build\intel-win\debug\address-model-32\link-sta
Command-line error: invalid Microsoft version number: 89

compilation aborted for libs\system\src\error_code.cpp (code 4)

Anyone know what the invalid Microsoft version number means? Anyone know what I am doing wrong?



14 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.


I don't know what you are doing wrong, but that diagnostic is given because the Intel driver (icl.exe) tries to figure out what version of the Microsoft compiler (the cl.exe in your PATH) you are using. It looks like in your case you are using MSVC++ 2013. This has a version number of 1800 not 89.  The Microsoft version can be seen by looking at the logo or via the _MSC_VER macro.

!% cl -V
Microsoft (R) C/C++ Optimizing Compiler Version 18.00.21005.1 for x64    <--- version numbers we support are between 700 and 2000
Copyright (C) Microsoft Corporation.  All rights reserved.

The diagnostic checks for valid versions:

        if (microsoft_version < 700 || microsoft_version > 2000) {
          str_command_line_error(ec_cl_invalid_microsoft_version, opt_arg);
        }  /* if */


Does icl work if you try to just compile a simple file on the command line?

Did you install the intel 64 version or the ia32 version of the compiler? Which architecture are you using?

Maybe our Boost expert Jennifer Jiang can be of help here. I'll ping her.



The way you're trying to set up the ICL env is wrong: "[icl-install-dir]\bin\intel64\iclvars.bat" does not exist.

If you use VS2012, use ""C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ipsxe-comp-vars.bat" intel64 vs2012"

If you use VS2013, use ""C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ipsxe-comp-vars.bat" intel64 vs2013"

Then build the boost.



Hello Judy!

Thanks for the reply. Sorry I am a bit of a newbie here. My answers to your questions:

1. I have never just tried to compile one file. What is the syntax for using icl to compile a simple file? Do I use the same window to do that?

2. I am using Windows 7 64-bit. I installed this file: c_studio_xe_2013_sp1_update3_setup.exe

Sorry I am so new to this.




Hello Jennifer,

Thanks for the reply. I am using VS2013. I was following the directions from this page:

At what step exactly do I execute:

""C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ipsxe-comp-vars.bat" intel64 vs2013"


When do I do that?


Ok. So you've done the step "2" on the article, right?

if so, you don't need to call the "iclvars.bat" or the "ipsxe-comp-vars.bat". Only need to build the boost using the cmd:

>> bjam toolset=intel

why passing "address-model=32"? From the "dir" you're trying to call "iclvars.bat", you're trying to build for intel64. If you've set up the env for intel64, you should use "address-model=64".



Hopefully you don't need this info but the way you compile a file on the command line is just create an empty file (let's call it foo.c) and type:

icl -c foo.c

Any window that has the compiler (icl.exe) in your PATH should work.


Hello Jennifer,

Yes I did step 2. I was trying to build 32-bit versions of boost to work with my 32-bit applications. Still, when I just execute "bjam toolset=intel" I get the same iclvars.bat errors. I am not calling it directly.. the bjam must be calling it?

Any idea what is wrong?




For building ia32 boost, the step 2 needs a little change: see the change in bold.

2. Run console and set up Intel C++ environment variables using the shortcut from the start menu (Start ->All Programs->Intel Parallel Studio XE 2013->Command Prompt-> Parallel Studio XE with Intel Compiler XE v13.1 Update 3 -> IA-32 Visual Studio 2010 mode)


Hello Jennifer,

I want to thank you for not giving up on me. I ran the command just as you suggested, I then changed directory to my boost 1.55 install and typed:


and then

bjam toolset=intel

I get a "link.jam file not found" error.. and then a bunch of the same errors I got before. Here is a brief sample:

compilation aborted for libs\wave\src\cpplexer\re2clex\aq.cpp (code 4)

    call "C:\Program Files (x86)\Intel\composer xe 2013 sp1\bin\ia32//
t" > nul
icl @"bin.v2\libs\wave\build\intel-win\release\link-static\threading-multi\cpple

...failed compile-c-c++ bin.v2\libs\wave\build\intel-win\release\link-static\thr
compile-c-c++ bin.v2\libs\wave\build\intel-win\release\link-static\threading-mul
'"C:\Program Files (x86)\Intel\composer xe 2013 sp1\bin\ia32//iclvars.bat"' is n
ot recognized as an internal or external command,
operable program or batch file.
Command-line error: invalid Microsoft version number: 89

compilation aborted for libs\wave\src\cpplexer\re2clex\cpp_re.cpp (code 4)

    call "C:\Program Files (x86)\Intel\composer xe 2013 sp1\bin\ia32//
t" > nul
icl @"bin.v2\libs\wave\build\intel-win\release\link-static\threading-multi\cpple

...failed compile-c-c++ bin.v2\libs\wave\build\intel-win\release\link-static\thr
...skipped <pbin.v2\libs\wave\build\intel-win\release\link-static\threading-mult
i>libboost_wave-iw-mt-1_55.lib for lack of <pbin.v2\libs\wave\build\intel-win\re
...skipped <pstage\lib>libboost_wave-iw-mt-1_55.lib for lack of <pbin.v2\libs\wa
...failed updating 406 targets...
...skipped 284 targets...

D:\vs2013 projects\boost_1_55_0>

Any idea why it is looking for iclvars.bat in that directory? Any idea what is going wrong here?




The exact path for iclvars.bat (and the rest of the Intel C++ installation) differs among the Cluster Studio, parallel Studio , and the plain Intel C++ license version.  Various versions of the path have been mentioned in this thread.  I wouldn't be surprised if you have a script somewhere or have read advice which needs to be adjusted according to which version you have installed.  In recent versions, including those you mentioned, it would not matter whether you chose iclvars.bat or compilervars.bat.

Hello Tim,

I don't understand what you mean by " it would not matter whether you chose iclvars.bat or compilervars.bat"

I don't explicitly choose any of them. I am just executing "bootstrap" then "bjam toolset=intel". Can anyone explain *exactly* what I need to do to get boost to build?



By the way I am using Intel C++ Studio for students.

This seems to be a boost error. As it stands, I don't think boost builds with the Intel C++ compiler.

I think this problem goes back quite a few versions to at least 1.46. Here is a bug report on the boost site:

Leave a Comment

Please sign in to add a comment. Not a member? Join today