Can we use VS2012 to target both v100 (VS2010) and Intel C++ Composer XE

Can we use VS2012 to target both v100 (VS2010) and Intel C++ Composer XE

Dear all,

I am working on a large project (C#,C++/CLI,and native C++) where the target platform toolset for C++/CLI and C++ is v100 (Visual Studio 2010).

For convenience, I use the VS2012 IDE. Everything was working fine up until I tried to compile some native C++ projects with Intel Composer XE 13.0.

If I have say
- projA.vcxproj (target: projA.lib with PlatformToolset = vc100)
- projB.vcxproj (target: projB.lib with PlatformToolset = vc100)
and convert projA to 'Use Intel C++' -> PlatformToolset becomes 'Intel C++ Compiler XE 13.0'
Then I get some linking used when combining projA.lib and projB.lib together:
7>ipo : warning #11082: C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib\amd64\msvcprt.lib: mismatch detected for '_MSC_VER': value '1700' does not match value '1600' in <snip>/projB.lib.

Of course, if I use the visual 2010 IDE, everything is fine.
So, is there a limitation that force Intel C++ to use the runtime of the current IDE and not take into account the initial PlatformToolset defined in the vcxproj ?

Hoping my explanations are clear. :-)

Regards,
Jean-Michel.

4 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

This error looks like mismatch between the compiler versions.It seems that when trying to compile both of the projects the mismatch was detected.Can you try to convert projB to most recent version of VS?

Thanks for the answer.

It is indeed a mismatch between compiler versions!
However, I may not have been clear engouh, but I definitely want to target VS2010 (_MSV_VER=1600) and not VS2012 (1700) platform.
The generated libraries are then used in a broader context where they must be linked with other VS2010 libs.
Intel converted project apparently always use the _MSC_VER version of the running IDE (here VS2012).

I'm just using the 2012 IDE since it is much more user friendly than the 2010 was. For instance, it supports managed C++ intelisense/completion, which 2010 refuse to offer.
When I'm reverting to VS2010 IDE, everything works fine. But it's a pity that Intel integration enforces the choice of the IDE.

I already tried to add the ' /Qvc10 /Qlocation,link,"$(VSCOMNTOOLS100)..\..\VC\bin\$(ProcessorArchitecture)" ' in the command line, but it is not enough, the intel converted project continues to use the linker of the used IDE rather than my VS2010 choice.
Is there another (tricky but functionnal) way to specify the vc target platform to Intel Composer from the IDE ?

Regards,
JM

Maybe Intel compiler forum will be a better option to ask for a help.

Leave a Comment

Please sign in to add a comment. Not a member? Join today