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

Building Boost 1.48 using Intel XE 12.1

superstatic
Beginner
849 Views
I'm trying to build Boost 1.48 using Intel XE 12.1 and when running bjam it brings up "Windows can't open this file" for each file.

I tried to adapt instructions from here:

http://software.intel.com/en-us/articles/building-boost-with-intel-c/

I added the following to user-config.jam:
using intel-win : 12.1 : "C:/Program Files (x86)/Intel/Composer XE/bin/ia32/icl.exe" : intel "C:/Program Files (x86)/Intel/Composer XE/bin/iclvars_ia32.bat" ;


I tried building with the following command:

C:\\Users\\blanked\\Desktop\\boost_1_48_0>bjam --toolset="intel" "INTEL_PATH=C:\\
Program Files (x86)\\Intel\\Composer XE\\bin\\ia32\\" "INTEL_BASE_MSVC_TOOLSET=vc-10_
0" "INTEL_VERSION=12.1"
C:/Users/blanked/Desktop/boost_1_48_0/tools/build/v2/build\\feature.jam:320:
in validate-feature from module feature
error: unknown feature ""
C:/Users/blanked/Desktop/boost_1_48_0/tools/build/v2/build\\feature.jam:354:
in expand-subfeatures-aux from module feature
C:/Users/blanked/Desktop/boost_1_48_0/tools/build/v2/build\\feature.jam:419:
in feature.expand-subfeatures from module feature
C:/Users/blanked/Desktop/boost_1_48_0/tools/build/v2/build\\build-request.jam
:20: in apply-to-property-set from module build-request
C:/Users/blanked/Desktop/boost_1_48_0/tools/build/v2/kernel\\modules.jam:103:
in modules.call-in from module build-request
C:/Users/blanked/Desktop/boost_1_48_0/tools/build/v2/util\\sequence.jam:48: i
n sequence.transform from module sequence
C:/Users/blanked/Desktop/boost_1_48_0/tools/build/v2/build\\build-request.jam
:32: in build-request.expand-no-defaults from module build-request
C:/Users/blanked/Desktop/boost_1_48_0/tools/build/v2\\build-system.jam:624: i
n load from module build-system
C:\\Users\\blanked\\Desktop\\boost_1_48_0\\tools\\build\\v2/kernel\\modules.jam:283:
in import from module modules
C:\\Users\\blanked\\Desktop\\boost_1_48_0\\tools\\build\\v2\\kernel\\bootstrap.jam:14
2: in boost-build from module
C:\\Users\\blanked\\Desktop\\boost_1_48_0\\boost-build.jam:17: in module scope fr
om module

I also ran the icl vars bat to set up env variables before trying to build with no luck.

Any help is appreciated.

Thanks
0 Kudos
13 Replies
Judith_W_Intel
Employee
849 Views

According to:

http://software.intel.com/en-us/articles/building-boost-with-intel-c/

you're missinga -s before INTEL_PATH, INTEL_BASE and INTEL_VER

0 Kudos
superstatic
Beginner
849 Views

According to:

http://software.intel.com/en-us/articles/building-boost-with-intel-c/

you're missinga -s before INTEL_PATH, INTEL_BASE and INTEL_VER



Ah, well I fixed that up and it removed the errors so I assume the INTEL_PATH has been set but it still brings up the can't open file windows.

C:\Users\blanked\Desktop\boost_1_48_0>bjam --toolset="intel" "-sINTEL_PATH=C
:\Program Files (x86)\Intel\Composer XE\bin\ia32" "-sINTEL_BASE_MSVC_TOOLSET=vc
-10_0" "-sINTEL_VERSION=12.1"

Building the Boost C++ Libraries.


Performing configuration checks

- has_icu builds : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
- iconv (libc) : no
- iconv (separate) : no
- icu : no
- icu (lib64) : no
- ../config//has_gcc_visibility builds : yes
- ../config//has_long_double_support builds : yes
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
warning: No python installation configured and autoconfiguration
note: failed. See http://www.boost.org/libs/python/doc/building.html
note: for configuration instructions or pass --without-python to
note: suppress this message and silently skip all Boost.Python targets

Component configuration:

- chrono : building
- date_time : building
- exception : building
- filesystem : building
- graph : building
- graph_parallel : building
- iostreams : building
- locale : building
- math : building
- mpi : building
- program_options : building
- python : building
- random : building
- regex : building
- serialization : building
- signals : building
- system : building
- test : building
- thread : building
- timer : building
- wave : building

...patience...
...patience...
...patience...
...patience...
...found 6797 targets...
...updating 804 targets...
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\c_regex_traits.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\cpp_regex_traits.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\cregex.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\fileiter.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\icu.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\instances.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\posix_api.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\regex.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\regex_debug.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\regex_raw_buffer.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\regex_traits_defaults.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\static_mutex.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\w32_regex_traits.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\wc_regex_traits.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\wide_posix_api.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\winstances.obj
compile-c-c++ bin.v2\libs\regex\build\intel-win\debug\link-static\threading-mult
i\usinstances.obj
intel-win.archive bin.v2\libs\regex\build\intel-win\debug\link-static\threading-
multi\libboost_regex-iw-mt-gd-1_48.lib
'/lib' is not recognized as an internal or external command,
operable program or batch file.



















0 Kudos
superstatic
Beginner
849 Views
Haven't been able to work it out yet so if anyone could help me out that would be great.
0 Kudos
Brandon_H_Intel
Employee
849 Views
Hi all,

Reading that article, I'm not sure the "advanced" command lines given for dealing with multiple/custom compiler environments really work anymore with 12.x or the latest versions of boost, and I've never built boost that way anyway. I always setup the Intel compiler environment I wish to use (either using the provided Start->Programs command line shells provided by Composer XE 2011, or by running "compilervars.bat intel64 vs2010"). Note that compilervars.bat existsin the Composer XE bin directory and that you should use the appropriate architecture and Visual Studio arguments as I just picked a couple for the sake of the example.

Once done, go to the boost root directory and do:

bootstrap.bat
b2 toolset=intel --build-type=complete stage

Note that I get some compilation errors with boost 1.48.0 on some code in the graph library, which I suspect is an issue that's already being investigated, but I have to check that out. However, everything else builds.

If you're planning on building multiple sets of the boost libraries with different versions of the Intel compiler, then I would recommend using toolset=intel-xx.x instead where xx.x is the version number. That will make sure the boost library names are differentiated based on compiler version.
0 Kudos
superstatic
Beginner
849 Views
Brandon, I've followed your instructions but I get the same behavior (eg. "Windows can't open this file: has_icu_test.obj.rsp"

I checked out a fresh trunk in case my changes conflicted somehow, ran the compilervars from my composer XE 2011 directory to set up the environment and then tried to build using the commands you specified. Any idea what might be going wrong?

Thanks for your reply.


0 Kudos
superstatic
Beginner
849 Views
I've also asked about this on the boost users mailing list:

Subject: Re: Building Boost 1.48 using Intel compiler
Newsgroups: gmane.comp.lib.boost.user
Date: 2011-11-18 00:25:43 GMT (2 minutes ago)
> Okay, so compiling works, but linking doesn't.  What
> is the output if you run with -d2 --debug-configuration
> I'm guessing that the linker isn't found and ends up
> empty, so /lib is interpreted as the program to execute
> instead of an argument to the linker.

The icl.exe tool isn't being found but I have no idea why. Here was the 
result of running with the debug config:

\boost_1_48_0>bjam --toolset="intel" "-sINTEL_PATH=C
:\Program Files (x86)\Intel\Composer XE\bin\ia32" 
"-sINTEL_BASE_MSVC_TOOLSET=vc
-10_0" "-sINTEL_VERSION=12.1" -2 --debug-configuration
notice: found boost-build.jam at C:/Users/Kim/Desktop/boost_1_48_0/boost
-build.jam
notice: loading Boost.Build from C:/Users/Kim/Desktop/boost_1_48_0/tools
/build/v2
notice: [msvc-cfg] msvc-10.0 detected, command: 'C:\Program Files 
(x86)\Microsof
t Visual Studio 10.0\VC\bin\cl.exe'
notice: [msvc-cfg] msvc-9.0 detected, command: 'C:\Program Files 
(x86)\Microsoft
  Visual Studio 9.0\VC\bin\cl.exe'
notice: will use 'C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\bin\cl.
exe' for msvc, condition msvc-10.0
notice: [msvc-cfg] condition: 
'msvc-10.0//
', setup: 'call "C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\vcvarsal
l.bat" x86 >nul
'
notice: [msvc-cfg] condition: 
'msvc-10.0//
32', setup: 'call "C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\vcvars
all.bat" x86 >nul
'
notice: [msvc-cfg] condition: 
'msvc-10.0/x86/', setup: 'call "C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\vcvar
sall.bat" x86 >nul
'
notice: [msvc-cfg] condition: 
'msvc-10.0/x86/32', setup: 'call "C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\vcv
arsall.bat" x86 >nul
'
notice: [msvc-cfg] condition: 
'msvc-10.0//
64', setup: 'call "C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\vcvars
all.bat" x86_amd64 >nul
'
notice: [msvc-cfg] condition: 
'msvc-10.0/x86/64', setup: 'call "C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\vcv
arsall.bat" x86_amd64 >nul
'
notice: [msvc-cfg] condition: 
'msvc-10.0/ia64/', setup: 'call "C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\vcva
rsall.bat" x86_ia64 >nul
'
notice: [msvc-cfg] condition: 
'msvc-10.0/ia64/64', setup: 'call "C:\Program Files (x86)\Microsoft Visual Studio 
10.0\VC\vc
varsall.bat" x86_ia64 >nul
'
warning: toolset intel-win initialization: can not find tool icl.exe
warning: initialized from
notice: will use 'icl.exe' for intel-win, condition intel-win
notice: iostreams: not using zlib compression
notice: iostreams: not using zlib compression
notice: iostreams: not using bzip2 compression
notice: iostreams: not using bzip2 compression

Building the Boost C++ Libraries.

At which point it started bringing up the can't open file windows.
0 Kudos
SergeyKostrov
Valued Contributor II
849 Views
>>...I'm trying to build Boost 1.48 using Intel XE 12.1 and when running bjam it brings up "Windows can't open this file" for each file...

Are you absolutely sure that a relative path to the Boost sources is right? Can try toopen a couple of Boost source files from MS Visual Studio?

When a relative path is wrong you won't be able to open.
0 Kudos
SergeyKostrov
Valued Contributor II
849 Views
>>...
>>Building the Boost C++ Libraries
>>...

Where doesthe messagecome from? If this is the Boost's messagea #pragma directive makes it. So, take a look at Boost sources.
0 Kudos
superstatic
Beginner
849 Views
I haven't changed the directory structure after checking out the boost trunk so I don't see how the relative paths could be incorrect.

In boost\tools\build\v2\user-config.jam I modified the using statement to:

using intel-win : 12.1 : "C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32/icl.exe" ;

Now I get this:

C:\boostsvn>b2 toolset=intel --build-type=complete stage
Performing configuration checks

- has_icu builds : no
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
- iconv (libc) : no
- iconv (separate) : no
- icu : no
- icu (lib64) : no
- ../config//has_gcc_visibility builds : no
- ../config//has_long_double_support builds : no
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
warning: No python installation configured and autoconfiguration
note: failed. See http://www.boost.org/libs/python/doc/building.html
note: for configuration instructions or pass --without-python to
note: suppress this message and silently skip all Boost.Python targets

Component configuration:

- chrono : building
- date_time : building
- exception : building
- filesystem : building
- graph : building
- graph_parallel : building
- iostreams : building
- locale : building
- math : building
- mpi : building
- program_options : building
- python : building
- random : building
- regex : building
- serialization : building
- signals : building
- system : building
- test : building
- thread : building
- timer : building
- wave : building

...patience...
...patience...
...patience...
...patience...
...found 8594 targets...
...updating 2445 targets...
compile-c-c++ bin.v2\libs\exception\build\intel-win-12.1\release\link-static\run
time-link-static\clone_current_exception_non_intrusive.obj
'"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.bat"' is n
ot recognized as an internal or external command,
operable program or batch file.
'icl' is not recognized as an internal or external command,
operable program or batch file.

call "C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.ba
t" > nul
icl @"bin.v2\libs\exception\build\intel-win-12.1\release\link-static\runtime-lin
k-static\clone_current_exception_non_intrusive.obj.rsp"

...failed compile-c-c++ bin.v2\libs\exception\build\intel-win-12.1\release\link-
static\runtime-link-static\clone_current_exception_non_intrusive.obj...
...skipped ime-link-static>libboost_exception-iw-s-1_48.lib for lack of tion\build\intel-win-12.1\release\link-static\runtime-link-static>clone_current_
exception_non_intrusive.obj...
...skipped libboost_exception-iw-s-1_48.lib for lack of s\exception\build\intel-win-12.1\release\link-static\runtime-link-static>libboos
t_exception-iw-s-1_48.lib...
compile-c-c++ bin.v2\libs\filesystem\build\intel-win-12.1\release\link-static\ru
ntime-link-static\v2\src\v2_operations.obj
'"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.bat"' is n
ot recognized as an internal or external command,
operable program or batch file.
'icl' is not recognized as an internal or external command,
operable program or batch file.

call "C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.ba
t" > nul
icl @"bin.v2\libs\filesystem\build\intel-win-12.1\release\link-static\runtime-li
nk-static\v2\src\v2_operations.obj.rsp"

...failed compile-c-c++ bin.v2\libs\filesystem\build\intel-win-12.1\release\link
-static\runtime-link-static\v2\src\v2_operations.obj...
compile-c-c++ bin.v2\libs\filesystem\build\intel-win-12.1\release\link-static\ru
ntime-link-static\v2\src\v2_path.obj
'"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.bat"' is n
ot recognized as an internal or external command,
operable program or batch file.
'icl' is not recognized as an internal or external command,
operable program or batch file.

call "C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.ba
t" > nul
icl @"bin.v2\libs\filesystem\build\intel-win-12.1\release\link-static\runtime-li
nk-static\v2\src\v2_path.obj.rsp"

...failed compile-c-c++ bin.v2\libs\filesystem\build\intel-win-12.1\release\link
-static\runtime-link-static\v2\src\v2_path.obj...
compile-c-c++ bin.v2\libs\filesystem\build\intel-win-12.1\release\link-static\ru
ntime-link-static\v2\src\v2_portability.obj
'"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.bat"' is n
ot recognized as an internal or external command,
operable program or batch file.
'icl' is not recognized as an internal or external command,
operable program or batch file.

call "C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.ba
t" > nul
icl @"bin.v2\libs\filesystem\build\intel-win-12.1\release\link-static\runtime-li
nk-static\v2\src\v2_portability.obj.rsp"

...failed compile-c-c++ bin.v2\libs\filesystem\build\intel-win-12.1\release\link
-static\runtime-link-static\v2\src\v2_portability.obj...
compile-c-c++ bin.v2\libs\filesystem\build\intel-win-12.1\release\link-static\ru
ntime-link-static\v3\src\operations.obj
'"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.bat"' is n
ot recognized as an internal or external command,
operable program or batch file.
'icl' is not recognized as an internal or external command,
operable program or batch file.

call "C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.ba
t" > nul

etc.
0 Kudos
TimP
Honored Contributor III
849 Views
Looks like your PATH environment has been clobbered during the course of your build.
Older versions of Windows used to do this to themselves from time to time, and Microsoft spokesmen said they would not fix this when it did not impact major customers using only Microsoft supported applications.
0 Kudos
SergeyKostrov
Valued Contributor II
849 Views
Hi,

>>...
>>"C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32//iclvars.bat"' is not recognized as
>>an internal or external command, operable program or batch file.
>>
>>'icl' is not recognized as an internal or external command, operable program or batch file.
>>...

It looks like something is wrong with your PATHs.
0 Kudos
Brandon_H_Intel
Employee
849 Views
You mentioned doing:

----

In boost\tools\build\v2\user-config.jam I modified the using statement to:

using intel-win : 12.1 : "C:/Program Files (x86)/Intel/Composer XE 2011 SP1/bin/ia32/icl.exe" ;

----

I didn't do that. I tried changing the .jam to see if it would start giving me an error, but it didn't.

I think what I'd like to know is if before you start running b2, if you can just run "icl" and actually run the compiler, or if you get the "icl.exe not recognized" problem you see from your build log.

0 Kudos
superstatic
Beginner
849 Views
Someone on the boost mailing list suggested that I run the build commands from the cmd prompt that opens on running the ia32 environment setup batch file. This worked fine from a fresh checkout of boost 1.48 with the only change being modifying the project-config to

using intel ;

instead of

using msvc ;

So this is resolved. Thanks for your help.
0 Kudos
Reply