- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I am trying to build Boost 1.55 on Windows with the instructions I found here:
https://software.intel.com/en-us/articles/building-boost-with-intel-c-composer-xe-2013-on-windows-7
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
ading-multi\thread_clock.obj.rsp"
...failed compile-c-c++ bin.v2\libs\chrono\build\intel-win\debug\address-model-3
2\link-static\threading-multi\thread_clock.obj...
compile-c-c++ bin.v2\libs\chrono\build\intel-win\debug\address-model-32\link-sta
tic\threading-multi\process_cpu_clocks.obj
'"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.
process_cpu_clocks.cpp
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
tic\threading-multi\lockpool.obj
lockpool.cpp
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
ading-multi\lockpool.obj.rsp"
...failed compile-c-c++ bin.v2\libs\atomic\build\intel-win\debug\address-model-3
2\link-static\threading-multi\lockpool.obj...
...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
tomic\build\intel-win\debug\address-model-32\link-static\threading-multi>lockpoo
l.obj...
...skipped <pstage\lib>libboost_atomic-iw-mt-gd-1_55.lib for lack of <pbin.v2\li
bs\atomic\build\intel-win\debug\address-model-32\link-static\threading-multi>lib
boost_atomic-iw-mt-gd-1_55.lib...
compile-c-c++ bin.v2\libs\system\build\intel-win\debug\address-model-32\link-sta
tic\threading-multi\error_code.obj
error_code.cpp
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?
Thanks!
Chris
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 */
Questions:
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.
Judy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Thanks,
Jennifer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Thanks,
Chris
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello Jennifer,
Thanks for the reply. I am using VS2013. I was following the directions from this page:
https://software.intel.com/en-us/articles/building-boost-with-intel-c-composer-xe-2013-on-windows-7
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?
Thanks!
Chris
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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".
Jennifer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Judy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Thanks!
Chris
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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)
Jennifer
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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:
bootstrap
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//iclvars.ba
t" > nul
icl @"bin.v2\libs\wave\build\intel-win\release\link-static\threading-multi\cpple
xer\re2clex\aq.obj.rsp"
...failed compile-c-c++ bin.v2\libs\wave\build\intel-win\release\link-static\thr
eading-multi\cpplexer\re2clex\aq.obj...
compile-c-c++ bin.v2\libs\wave\build\intel-win\release\link-static\threading-mul
ti\cpplexer\re2clex\cpp_re.obj
'"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.
cpp_re.cpp
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//iclvars.ba
t" > nul
icl @"bin.v2\libs\wave\build\intel-win\release\link-static\threading-multi\cpple
xer\re2clex\cpp_re.obj.rsp"
...failed compile-c-c++ bin.v2\libs\wave\build\intel-win\release\link-static\thr
eading-multi\cpplexer\re2clex\cpp_re.obj...
...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
lease\link-static\threading-multi>instantiate_cpp_exprgrammar.obj...
...skipped <pstage\lib>libboost_wave-iw-mt-1_55.lib for lack of <pbin.v2\libs\wa
ve\build\intel-win\release\link-static\threading-multi>libboost_wave-iw-mt-1_55.
lib...
...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?
Thanks!
Chris
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
Thanks,
Chris
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
By the way I am using Intel C++ Studio for students.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
This seems to be a boost error. As it stands, I don't think boost builds with the Intel C++ compiler.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page