Intel® C++ Compiler
Support and discussions for creating C++ code that runs on platforms based on Intel® processors.
7646 Discussions

How to coexist with the Intel compiler for Visual Studio?

rushmanbert
Beginner
218 Views
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
218 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
218 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
218 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
218 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
218 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
218 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
218 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
218 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
218 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