Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Visual Studio 2012 integration: libmmd.dll is not found at runtime

Wiebke_T_
Beginner
3,752 Views

When I convert a small visual studio solution (built using cmake, not compiled with VS++ before) into a C++ compiler solution via the IDE ("use Intel C++"), compile, and I start the execuatble in the Visual Studio Debugger, libmmd.dll is not found: "The program can't start because libmmd.dll is missing from your computer. Try reinstalling the program to fix this problem."

The dll is present in 'Composer XE 2013\redist\intel64\compiler'. It is found when starting the same binary from the command line (without loading any iclvars or intel environment variables).

The project consists of a std c++ static library and an executable that uses the library. It runs fine when compiled with the visual studio compiler.

The problem occurs in Composer XE 2013 update 2, and update 5 (w_ccompxe_2013.5.198), with Visual Studio Professional 2012 Version 11.0.60315.01 Update 2. It happens in all configurations: Debug and Release, 32 and 64 bit.

Is there a fix available for this?

0 Kudos
39 Replies
SergeyKostrov
Valued Contributor II
2,987 Views
>>The problem occurs in Composer XE 2013 update 2, and update 5 (w_ccompxe_2013.5.198), with Visual Studio >>Professional 2012 Version 11.0.60315.01 Update 2. It happens in all configurations: Debug and Release, >>32 and 64 bit. >> >>Is there a fix available for this? Check PATH environment variable and paths, like: [ ICCInstallDir ]\Composer XE\Redist\ia32\Compiler and [ ICCInstallDir ]\Composer XE\Redist\intel64\Compiler need to be added.
0 Kudos
Wiebke_T_
Beginner
2,987 Views

Interesting:

%INTEL_DEV_REDIST%redist\intel64\compiler and %INTEL_DEV_REDIST%redist\ia32\compiler was added automatically by the installer. (That's the one for the public/non-developer redistribution, usually in C:\Program Files x86\Common Files\Intel)

When I analyze the exe in "depends.exe", it finds the library along that path. Why doesn't Visual Studio?

When I add the corresponding paths of the composer directory (<something>\Composer XE 2013\redist\intel64\compiler), it works from the VS debugger as well.

So this solves the problem. ....but does anyone know what causes this behavior?

0 Kudos
SergeyKostrov
Valued Contributor II
2,987 Views
>>...So this solves the problem. ....but does anyone know what causes this behavior? It is Not clear why Intel C++ compiler installer did Not add these two paths to VS list of paths to libraries. >>...INTEL_DEV_REDIST... How a complete path looks like, for example for ia32?
0 Kudos
Wiebke_T_
Beginner
2,987 Views

>> How a complete path looks like, for example for ia32?

INTEL_DEV_REDIST=C:\Program Files (x86)\Common Files\Intel\Shared Libraries\

So the complete path is 'C:\Program Files x86\Common Files\Intel\Shared Libraries\redist\ia32\compiler'

Oh, and thanks for the hint earlier.

0 Kudos
JenniferJ
Moderator
2,987 Views

Was the VS2012 running when you install the Intel C++ Composer XE 2013?

So the original path contains "%INTEL_DEV_REDIST%redist\intel64\compiler" with "INTEL_DEV_REDIST" not expanded, right? do you have Windows 7 x64?

Jennifer

0 Kudos
SergeyKostrov
Valued Contributor II
2,987 Views
I just verified how all these paths look like in case of VS 2010 with command line integration of Intel C++ compiler version 12: PATH= ... C:\WorkLib\ICC2011\Composer XE 2011 SP1\bin\ia32 C:\WorkLib\ICC2011\Composer XE 2011 SP1\redist\ia32\compiler C:\VS.2010\Common7\IDE\ c:\VS.2010\VC\BIN C:\VS.2010\Common7\Tools ... C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 C:\WINDOWS\Microsoft.NET\Framework\v3.5 C:\VS.2010\VC\VCPackages ... C:\WorkLib\ICC2011\Composer XE 2011 SP1\Ipp\..\redist\ia32\ipp C:\WorkLib\ICC2011\Composer XE 2011 SP1\Ipp\..\redist\ia32\compiler C:\WorkLib\ICC2011\Composer XE 2011 SP1\redist\ia32\mkl C:\WorkLib\ICC2011\Composer XE 2011 SP1\redist\ia32\compiler C:\WorkLib\ICC2011\Composer XE 2011 SP1\Tbb\bin\..\..\redist\ia32\tbb\vc10 C:\WorkLib\ICC2011\Composer XE 2011 SP1\Redist\Ia32\Tbb\Vc8 C:\WorkLib\ICC2011\Composer XE 2011 SP1\Redist\ia32\Ipp C:\WorkLib\ICC2011\Composer XE 2011 SP1\Redist\Ia32\Mkl C:\Program Files\Common Files\Intel\Shared Libraries\Redist\Ia32\Compiler ... C:\WorkLib\ICC2011\Composer XE 2011 SP1\redist\ia32\mpirt ... I hope it will be useful for you.
0 Kudos
Wiebke_T_
Beginner
2,987 Views

>> Was the VS2012 running when you install the Intel C++ Composer XE 2013?

Nope.

>> So the original path contains "%INTEL_DEV_REDIST%redist\intel64\compiler" with "INTEL_DEV_REDIST" not expanded, right? do you have Windows 7 x64?

Yes and yes.

0 Kudos
Wiebke_T_
Beginner
2,987 Views

>> I just verified how all these paths look like in case of VS 2010 with command line integration of Intel C++ compiler version 12:

Thank you, Sergey. Just adding the two composer xe paths already solved the problem.

I don't like to add the library directories into the path because different projects use different versions of those libraries. Also, when these are in the global path I wouldn't notice if one of our projects doesn't work properly because the target system might not have them installed globally. Under Windows, this whole library path business was solved kind of unsatisfactory, in my opinion.

0 Kudos
SergeyKostrov
Valued Contributor II
2,987 Views
>>...Under Windows, this whole library path business was solved kind of unsatisfactory, in my opinion. It is possible that something went wrong with installation / integration of Intel C++ compiler. Regarding library paths I could give an example: on my primary system I have several Visual Studios installed. All of them work properly and there are no any library paths issues.
0 Kudos
Wiebke_T_
Beginner
2,987 Views

Hm, kind of Off-Topic now, but what I mean is that all library directories must be in a global path and it is a bit cumbersome/error-prone to work with multiple versions of the same DLL during development.

0 Kudos
golnaz_f_
Beginner
2,987 Views

how can i run a program in visual studio 2012 and where can i see its result. i installed intel visual fortran on visual studio and my program has been written with fortran90.

 

0 Kudos
SergeyKostrov
Valued Contributor II
2,987 Views
[ Debug Configuration ] - Press Ctrl+F5 to build and execute a program - Press F10 to build and start debugging a program [ Release Configuration ] - Press Ctrl+F5 to build and execute a program
0 Kudos
golnaz_f_
Beginner
2,987 Views

Hi, i want to run a program in visual studio2012. I installed it, then intel visual fortran coposer xe. my program wrote with fortran90. i tried to run it but i get some error i do not know what does that mean. can some one help me please. i attached the zip file i run tha cmbmain i do not know is it right. if some one help me to make it i will be realy grateful

0 Kudos
Wiebke_T_
Beginner
2,987 Views

Um, golnaz, this is kind of off topic in this thread, why don't you make a new one? ^.^

0 Kudos
mecej4
Honored Contributor III
2,987 Views

golnaz f. wrote:

i tried to run it but i get some error i do not know what does that mean.

It is pointless to ask about the resolution of errors that have not been specified.

I was able to compile and run the two programs in your archive (tester and sigma8). They ran to completion in a few seconds and neither produced any error messages, either during compilation or execution.

MODERATORS: Please move the posts in this thread starting with Golnaz's first post, http://software.intel.com/en-us/comment/reply/401264/1750510 ; to the Intel Fortran Compiler for Windows forum as a new thread.

0 Kudos
golnaz_f_
Beginner
2,987 Views

Dear mecej4

very thanks for your answer as you said i ran (by ctrl+f5) the tester but i get the error " error #7002: Error in opening the compiled module file.  Check INCLUDE paths"." error #6683: A kind type parameter must be a compile-time constant. what is it can you help me pleaase.

0 Kudos
mecej4
Honored Contributor III
2,987 Views

Error 7002 is a compile-time error, not a run time error. When you press Ctrl+F5 in the VS IDE, the current target is built if needed, and the error that you got is from that step. However, I do not see why that error occurred, since I am able to build the executable from your sources using either the command line or in the IDE.The output:

[bash]camb>VisualStudio\Release/CAMB_devel.exe params.ini
Reion redshift       =  10.698
Om_b h^2             =  0.022600
Om_c h^2             =  0.112000
Om_nu h^2            =  0.000000
Om_Lambda            =  0.725306
Om_K                 =  0.000000
Om_m (1-Om_K-Om_L)   =  0.274694
100 theta (CosmoMC)  =  1.037944
Reion opt depth      =  0.0900
Age of universe/GYr  =  13.794
zstar                =  1088.71
r_s(zstar)/Mpc       =  146.39
100*theta            =  1.038226
zdrag                =  1059.70
r_s(zdrag)/Mpc       =  149.02
k_D(zstar) Mpc       =  0.1392
100*theta_D          =  0.160034
z_EQ (if v_nu=1)     =  3216.24
100*theta_EQ         =  0.846430
tau_recomb/Mpc       =  284.87  tau_now/Mpc =  14384.7

[/bash]

To help me make further analysis of the problem, please post the log file of the failed build: in the Output window of Visual Studio, you will see a message similar to

     4>Build log written to  "file://S:\lang\camb\VisualStudio\Release\BuildLog.htm"

Save and post that file BuildLog.htm in your next reply.

I suggest that you not use the IPO option (implied by -fast) until you get things working, since multi-file IPO greatly increases program rebuild time.

0 Kudos
golnaz_f_
Beginner
2,987 Views

Dear mecej4

so much thanks for your answer, i am a biginner in this work and i am very sorry if my quastions are silly. let me say my work step by step. my path to run the program is: file, new, project, empty project in intel(R) visual fortran then ok., then right click on resource file select add and new item then fortran free-form file(.f90), add.e new page opens and i copied the tester or sigma8 in this page then ctrl+f5.

the buildlog.htm is in attachment.

thanks alot

 

 

0 Kudos
mecej4
Honored Contributor III
2,987 Views

Now you have changed the project from that which you originally posted, but the problem is quite simple and the Error #7002 message pinpoints the problem. In your Source.f90 file, you have a use CAMB statement. The compiler, upon encountering this statement, looks for the module file "camb.mod",  but it does not find it. To remedy the situation, you must tell the Visual Studio IDE that the new project depends on the CAMBLib project, in the Solution->Properties->Common Properties->Project Dependencies panel. You had already done this configuration correctly for your CAMB project earlier.

Depending on the layout of your files, you may also add the subdirectory containing the *.mod files to the list of directories in which the compiler may look for include and module files, in the project settings, Fortran section,  for your new project.

0 Kudos
golnaz_f_
Beginner
2,271 Views

i am sorry but i did not get your aim correctly. where is solution. i have a solution in right of my page, rihgt click on it then properties, common properties, project dependencies. but what i have to do in this page. the page is not active. how thell it my project depends on the CAMBLib.

0 Kudos
Reply