User forums > Help

Install Intel 11 Compiler

(1/3) > >>

peterfarge:
Hello Forum,

I have installed the Intel Compiler under WindowsXP. I have added the path values for Codeblocks from this Link. The Visual Studio 2008 is also installed. Now I want to compile my project within CodeBlocks8.02. I'm only compiling a HelloWorld Project. The error message is:

--- Quote ---Execution of 'icl.exe /nologo -Wall /X /ID:\Programme\IntelCompiler\Compiler\11.0\061\cpp\include /I"D:\Programme\Microsoft Visual Studio 9.0\VC\include" /I"D:\Programme\Microsoft SDKs\Windows\v7.0A\Include" /c main.c /Foobj\Release\main.obj' in 'D:\HelloWorld' failed.
Nothing to be done.
--- End quote ---
I have set the "full command line" compiler logging under "Other settings". If I use the iclvars_ia32.bat I can compile the HelloWorld Program on Dosshell. If I add iclvars_ia32.bat as a PreBuild step within CodeBlocks the error message from above stays.

Could it have something to do with the standard environment variables? Currently they are set to the Watcom Compiler. (If I compile a program without iclvars_ia32.bat, the Intel compiler outputs linker messages from the Watcom.)


Thanks

Peter


EDIT: Is the Intel C++ compiler c99 compliant at all? If I look for some headers like stdbool.h, they are not found in the intel include, nor in the Visual Studio inlude directories.

MortenMacFly:

--- Quote from: peterfarge on August 10, 2009, 02:14:34 pm ---I have installed the Intel Compiler under WindowsXP. I have added the path values for Codeblocks from this Link.

--- End quote ---
I was told that Intel changed it's folder structure completely, so mostly the explanation on that site is not up-to-date anymore.
Please inspect the icl_vars.bat file for what path's exactly are setup there and setup the compiler accordingly. Most likely you have to add another folder to the additional executable path's or alike. It seams the Intel compiler cannot find one of it's components. But which one is hard to tell.

It's hard to try as IIRC none of us (devs) is using this compiler (under Windows).

peterfarge:
I know, and I have changed the pathes already.


This is the content of "iclvars_ia32.bat":
@call "D:\Programme\Microsoft Visual Studio 9.0\Common7\Tools\vsvars32.bat"
SET ICPP_COMPILER11=D:\Programme\IntelCompiler\Intel\Compiler\11.0\061\cpp
SET INTEL_LICENSE_FILE=C:\Program Files (x86)\Common Files\Intel\Licenses
SET PATH=%ICPP_COMPILER11%\Bin\ia32;%PATH%
SET LIB=%ICPP_COMPILER11%\Lib\ia32;%LIB%
SET INCLUDE=%ICPP_COMPILER11%\Include;%INCLUDE%

1. All changes from the MS batch file to the path variables are set to the second position. If I remove the MS batch file, I get a message from the Watcom Linker. So the Intel Compiler uses the MS Linker?
2. The path to the bin files is correct within CodeBlocks. If I set a wrong path, CodeClocks will show an err msg.
3. Lib path and include paths from Codeblocks were pointing to the same location as within the batch file.

I think I must take a closer look to the vsvars32.bat file from the Visual Studio.


Thanks

Peter

MortenMacFly:

--- Quote from: peterfarge on August 11, 2009, 08:47:11 pm ---SET ICPP_COMPILER11=D:\Programme\IntelCompiler\Intel\Compiler\11.0\061\cpp
SET PATH=%ICPP_COMPILER11%\Bin\ia32;%PATH%

--- End quote ---
This is the entry for the base path of the tool chain and an additional path to be setup.


--- Quote from: peterfarge on August 11, 2009, 08:47:11 pm ---SET INTEL_LICENSE_FILE=C:\Program Files (x86)\Common Files\Intel\Licenses

--- End quote ---
This you need to set using the envvars plugin


--- Quote from: peterfarge on August 11, 2009, 08:47:11 pm ---SET LIB=%ICPP_COMPILER11%\Lib\ia32;%LIB%
SET INCLUDE=%ICPP_COMPILER11%\Include;%INCLUDE%

--- End quote ---
This you need to put into the toolchain compiler and linker options.


--- Quote from: peterfarge on August 11, 2009, 08:47:11 pm ---1. All changes from the MS batch file to the path variables are set to the second position. If I remove the MS batch file, I get a message from the Watcom Linker. So the Intel Compiler uses the MS Linker?

--- End quote ---
Watcom linker? So this compiler is in the path, too? This probably leads to conflicts. Besides: Intel may use several VS tools but most important the libs
and include files of the platformm SDK. That's why the vcvars32.bat is called IIRC.


--- Quote from: peterfarge on August 11, 2009, 08:47:11 pm ---2. The path to the bin files is correct within CodeBlocks. If I set a wrong path, CodeClocks will show an err msg.

--- End quote ---
Hopefully the others are, too (see above).


--- Quote from: peterfarge on August 11, 2009, 08:47:11 pm ---3. Lib path and include paths from Codeblocks were pointing to the same location as within the batch file.

--- End quote ---
OK...


--- Quote from: peterfarge on August 11, 2009, 08:47:11 pm ---I think I must take a closer look to the vsvars32.bat file from the Visual Studio.

--- End quote ---
Yes, because these path's are needed in the compiler and linker settings at least, too (not to forget resource compiler).

You may want to use the verbose switch of the Intel compiler... IIRC there was such. That way (and also if you enabled to log the full command line in the compiler settings) you might get a more descriptive error message.

BTW: Oce you've finished I would love to see an update to the WiKi article (if required). ;-)

peterfarge:
- I have tried the switches "/Wall" and "/WL" but they dont show more informations.
- Yes, the resource compiler needs the same paths as the preprocessor.
- I have tried the following: Created a new HelloWorld command line program. If I complie it with CodeBlocks, I get the same error like in the first posting. If I open a Dosshell, call the iclvars_ia32.bat and then execute the command that fails within Codeblocks
--- Quote ---icl.exe /nologo -Wall /X /ID:\Programme\IntelCompiler\Compiler\11.0\061\cpp\include /I"D:\Programme\Microsoft Visual Studio 9.0\VC\include" /I"D:\Programme\Microsoft SDKs\Windows\v7.0A\Include" /c main.c /Foobj\Release\main.obj
--- End quote ---
then I get the main.obj. Why?

If I remove the paths and only execute this command:
--- Quote ---icl.exe /nologo -Wall /X  /c main.c /Foobj\Release\main.obj
--- End quote ---
I get the correct output.

The Intel compiler doesnt use the environment variables I have set in the Prebuild step?

Navigation

[0] Message Index

[#] Next page

Go to full version