What dependencies does the Intel C/C++ compiler have against Visual Studio? - c++

I want to give the Intel C and C++ compilers a shot but... I intend to totally avoid Visual Studio (unless there's a runtime dependency.) My machine already has several different versions of the VS runtime as it cannot be avoided.
Does Intel state anywhere what the dependencies are? I've seen notes almost everywhere but from Intel that state what they need from Visual Studio so I'm not interested in anecdotals here.

From the release notes for Intel C++ Composer XE for Windows:
To use the Microsoft Visual Studio development environment or command-line tools to
build IA-32 or Intel® 64 architecture applications, one of:
o Microsoft Visual Studio 2012* Standard Edition (or higher edition) with C++
component installed
o Microsoft Visual Studio 2010* Standard Edition (or higher edition) with C++ and
“X64 Compiler and Tools” components installed [1]
o Microsoft Visual Studio 2008* Standard Edition (or higher edition) with C++ and
“X64 Compiler and Tools” components installed [1]
To use command-line tools only to build IA-32 architecture applications, one of:
o Microsoft Visual C++ Express 2012 for Windows Desktop*
Intel® C++ Composer XE 2013 for Windows*
Installation Guide and Release Notes 5
o Microsoft Visual C++ 2010* Express Edition
o Microsoft Visual C++ 2008* Express Edition
To use command-line tools only to build Intel® 64 architecture applications:
o Microsoft Windows Software Development Kit Update for Windows 7* and .NET
Framework 4*
So if you want to use it without a paid for version of VS it seems you are limited to command line compilation and VS Express.
The compiler is available for Linux though if that is an alternative.
Edit: the notes also says this:
Command-line development can be done with Visual Studio 2012 Express
Edition. Unlike earlier versions, Visual Studio 2012 Express Edition
supports both 32-bit and 64-bit commandline development, so no other
Platform SDK should be necessary for 64-bit development.

Related

Intel C++ Compiler Installer not finding Visual Studio

So I was trying to install the Intel C++ Compiler (in the Parallel Studio XE 2018 bundle) and when I go to install it comes up with the warning "Intel C++ Compiler will not work because none of the supported environments is found on your computer," among others. However, one of those supported environments is Microsoft Visual Studio 2017, which I have installed.
I read online that there's some issue with the most recent versions of Visual Studio and that the compiler only works with versions 15.6 and below. I have 15.5.6, but of the Community version. I'm not sure if the Professional version is required; if it is I don't have it installed and I can't figure how to install a previous version.
If there is no way to make this work (or there is, but it's too much of a pain), suggestions for other C++ compilers would be appreciated.
You could see this document about “Troubleshooting Fortran Integration Issues with Microsoft Visual Studio*”:
https://software.intel.com/en-us/articles/troubleshooting-fortran-integration-issues-with-visual-studio/
It shared the version of Visual Studio that is supported by the Intel Parallel Studio XE now.

Difference between Microsoft Visual C++ 2010 x64 cross tools vs MSVC++ redistributable

To use intel fortran in windows environment with other commercial software package, pre-requisite is to have Microsoft Visual C++:
Microsoft Visual C++ 2010 x64 cross tools
If I check my installed programs, I see that "Microsoft Visual C++ 2010 x64 redistributable 10.0.40219"
Is "Microsoft Visual C++ 2010 x64 redistributable 10.0.40219" different from "Microsoft Visual C++ 2010 x64 cross tools"?
Over the web, I read that to have Microsoft Visual C++ 2010 x64 cross tools, I need to install MS visual studio 2010.
Do I have to purchase MS visual studio to have "Microsoft Visual C++ 2010 x64 cross tools" ?
So I am confused !
Thanks in advance for your prompt response !
Redistributables are just the libraries you are permitted to install to get msvc built applications to run on the client system.
It is not the same as having msvc 2010 installed on a system.
Things with different names are generally different things, even if part of the name is similar.

How to install Visual Studio Build Tools 2010 on Visual Studio 2015 Community?

I have a project created on Visual Studio 2010. When I try to run the project on Visual Studio 2015 Community edition I get the error below,
Severity Code Description Project File Line
Error MSB8020 The build tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. To build using the v100 build tools, please install Visual Studio 2010 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Retarget solution". graphics C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.Cpp.Platform.targets 55
And when I tried to build it with Visual Studio 2015 Build Tools I encountered about 1500+ errors.
Is there any way to make the project work?
If you can't install VS2010, Windows SDK for Windows 7 contains needed compiler tools (v100), you may actually skip installing the SDK itself and install only the compiler tools, headers and libs. Please note, that the compiler included in Windows SDK is the same that VS2010 has, but VS2010 SP1 has a bit newer compiler. If you need that, you'll also need to install Microsoft Visual C++ 2010 Service Pack 1 Compiler Update for the Windows SDK 7.1. But be aware, that if you install these, you may have issues later if you decide to install VS2010, there are bugs in installer that requires you to install components in strict order. Also, if your code uses MFC or ATL you must install VS2010, installing Windows SDK will not be enough.
You either install VS 2010 and build your project, or better yet you upgrade your projects. The VS 2015 custom install options will let you install the v120 Platform Toolset, but not the v110 or v100 Platform Toolsets.
One major change in VS 2015 is that the C++ tools (i.e. v140) are not installed by the Typical installation option. See the Visual C++ Team Blog.
Keep in mind that Visual C++ 2010 used the C++0x Draft Standard, and Visual C++ 2015 meets the C++11 Standard with the exception of Expression SFINAE (which is partly there in Update 1), so quite a bit has changed in the intervening years including some breaking changes. Since you are jumping three major releases at once--and about 10 minor updates--, it can be a bit overwhelming especially working through all the new warnings.
Another thing to keep in mind is that Visual C++ 2010 used the Windows 7.1 SDK, while Visual C++ 2012 or later use the Windows 8.x SDK. There's been a lot of change there too particularly for DirectX development. It's particularly important for Windows desktop apps that you set the _WIN32_WINNT preprocessor define for your target platform as the Windows 8.x SDK does not default to the 'oldest supported platform' like earlier Windows SDKs did. See Using the Windows Headers
VS 2010 and the v100 toolset supports targeting Windows XP and Windows Server 2003. The v140 toolset does not support targeting Windows XP / Server 2003. You have to use v140_xp Platform Toolset instead. See this post for some notes as this means you are again using the Windows 7.1 SDK rather than the Windows 8.x SDK with the _xp toolsets.
See Breaking Changes in Visual C++ 2012, Breaking Changes in Visual C++ 2013, and Breaking Changes in Visual C++ 2015.
See also Support For C++11/14/17 Features (Modern C++), and Where is the DirectX SDK?.
If you need to build the code both with VS 2010 and with VS 2015, then you should create two projects/solution files, one for each. You may also want to read this article for some notes on writing code that can build with multiple Visual C++ toolsets, which again is particularly challenging due to the Windows SDK changes.
VS 2015 supports targeting Windows Vista SP2, Windows 7 SP1, Windows 8.0, Windows 8.1, Windows 10, and optionally Windows XP SP3. It does not support targeting Windows Vista RTM, Windows Vista SP1, or Windows 7 RTM.

Integrate DLL compiled with Intel C++ Compiler

Is it possible to integrate into an application compiled with Visual Studio compiler a DLL compiled with Intel C++ Compiler ?
Are there some special settings to pay attention to for integration?
There seems to be some compatibility options for using Intel C++ Compiler while being compatible with the Visual Studio framework, see https://software.intel.com/en-us/articles/intel-c-compiler-compatibility-with-microsoft-visual-c
Compatibility Options
The following Intel® Compiler options provide compatibility with
different versions of Microsoft Visual C++:
/Qvc8 Microsoft Visual C++ 2005
/Qvc9 Microsoft Visual C++ 2008
/Qvc10
Microsoft Visual C++ 2010

How do I create a 64-bit native ATL C++ DLL in Visual Studio 2003?

I have a 32-bit ATL C++ in-proc COM server soultion. How do I port it to 64-bit Windows? I mean how do I make VC++7 emit 64-bit code? Is it possible with Visual Studio 2003?
You need a 64bit compiler that will compile long to a 64bit long. The version which was shipped in VS2005 would do. Later versions of Visual C++ and Windows SDK have higher versions of the compiler. 64bit support is disabled in standard or lower versions of Visual C++ but not in the freely available Windows SDK. Other compiler providers like Intel have their own products that supports Visual Studio and 64 bit.
64 bits support is new with VS 2005, aka VC++8
Have a look at VSItanium . From the description:
The VSItanium plugin for Visual Studio .NET 2003 allows to compile Win32 Visual C++ projects with several external compilers, actually the Microsoft SDK 64bit Itanium and AMD Opteron compiler as well as the Intel C++ Itanium compiler.
Concerning compiler choice -- if migrating to a newer VS version is not an option because of reliance on cl 13 (VS 2005 uses cl 14), you should be able to find a cl 13 supporting IA-64 and amd64 in WDK 3790.1830, IIRC. There should be an old SDK with a 64 bit-supporting cl 13, but I do not know which one.
If your project builds fine with newer compilers, you basically have free choice of WDK and SDK versions.