Community
cancel
Showing results for 
Search instead for 
Did you mean: 
rushmanbert
Beginner
118 Views

How to coexist with the Intel compiler for Visual Studio?

My apologies if this is a duplicate thread. I think my previous attempt failed, but there was no feedback, so I'm trying again.

Our company has a product that integrates with Visual Studio 2005 and 2008. One thing we do when we are installed is to make a copy of the original cl.exe and replace it with our own compiler front end. Our software preprocesses the source, then passes it along to the real Microsoft compiler.

A couple of our customers are using version 10 of the Intel compiler. They have complained that after our tools are installed the Intel compiler doesn't work any more, not even from the command line. They both see this warning:
icl: warning #10114: Microsoft Visual C++ not found in path

and the compile continues but fails, reporting syntax errors.

I have gotten Parallel Studio 2011 and installed it. I can almost reproduce the problems our customers see, but I get a hard error:
icl: error #10114: Microsoft Visual C++ not found in path

and the compile stops.

We are a small company and we are not in the partner program, but I'm hoping that someone can tell us how we can coexist with your compiler. We have tried using the proper /Qvc switch, but that makes no difference.

Thanks,
Rush
0 Kudos
9 Replies
Aubrey_W_
New Contributor I
118 Views

Hello Rush,

I will move this thread to the Intel C++ Compiler Forum. One of our support engineers there will be able to give you more detailed information about what the compiler needs to function.

Best regards,

==
Aubrey W.
Intel Software Network Support
jimdempseyatthecove
Black Belt
118 Views

Rush,

Have you tryedleaving the original cl.exe unchanged and inserting into the folder where cl.exe lives a cl.bat or cl.com that runs your program when command line

cl a b c d...

issued?

Or plan B, add to PATH (in front of MS's path to VS) a path to your folder containing your cl.exe?
(your cl.exe does its preprocessing, then uses fully qualified path to the real CL.EXE)

Jim Dempsey
Om_S_Intel
Employee
118 Views

Intel compiler changes only project files and expect Microsot development environment without changes. Itel compiler drivers replaceMicrosoft compiler as and when required.

rushmanbert
Beginner
118 Views

Thanks.

Can you tell me what it is looking for about cl.exe? Or can you point me to something that will tell me how we can implement a compiler front end for Visual Studio that won't cause your compiler to fail? That would really help.

- Rush
rushmanbert
Beginner
118 Views

Thanks Jim,

Clever ideas, but neither of them work. When I put the original Cl.exe back in place it gets used by Visual Studio, even if I have put the path to our version first in the path, or if I put a cl.bat in as a sibling of the real cl.exe.

- Rush
_heinz
Beginner
118 Views

Hi rushmanbert,

have a look there:http://software.intel.com/en-us/forums/showthread.php?t=71016&o=d&s=lr
It is not necessary to use VM's.
Hoping this can help you.
heinz
Mark_S_Intel1
Employee
118 Views

Rush,

The Intel compiler driver uses cl in two ways. One is just to query the version number information and the other is to satisfy Microsoft functionality thatwe cannot support in our compiler.

If the cl that is being called does not return expected version information, the error message in question will be output. I would assume that the wrapper you areusing does not return the version information that is expected. If you could build your wrapper so it returns the version information about the cl you are calling, that would be ideal. We use the standard Windows API GetFileVersionInfo to grab that information from cl.
--mark

Om_S_Intel
Employee
118 Views

I doubt that the wrapper woud work. This is because Microsoft compiler is used to satisfy Microsoft functionality that we cannot support inIntel compiler.

Mark_S_Intel1
Employee
118 Views

For sure, the addition of the Intel compiler does make the wrapper's job more complicated. The wrapper may need to check the project state and determine which compiler is supposed to build it. After the wrapperprocesses the source it should then call the Intel compiler (icl.exe) rather than cl.exe for Intel based projects. In this case, cl.exe should be available in the path so the Intel compiler can call and use it when need to.

--mark
Reply