- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear Dr. Fortran and community,
I am getting the following entry point not found error message: "The procedure entry point _libm_sse2_cbrt could not be located in the link library libmmd.dll." According to the forum this function computes the cubic root (^1/3) in a fast way.
This error is produced when the solution is compiled in Release mode. In Debug mode it works perfect. Note that for both compilation modes the libmmd.dll (or libmmdd.dll for debug) corresponds to the latest version 13.1.0.2. I have verified that the Windows path is pointing to %INTEL_DEV_REDIST%redist\ia32\compiler. Also when I add the /MDd for compiling in Release mode the error is not produced.
I have made a screenshot using Dependency walker showing the differences between the libmmd (left) and libmmdd (right). Could some body suggest what could be the source of the problem? And a possible solution? Perhaps I have overlooked to some other points.
Thank you in advance, Javier
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I see __libm_sse2_cbrt in my most recent installation of ia32\libmmd.dll, same as corresponding libmmdd.dll. I don't have your version installed.
13.1.0.2 doesn't look like a latest version.
I don't see such a function in the intel64 installations which I normally use.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
13.1.0.2 is the latest version of libmmd.dll. However, _libm_sse2_cbrt has been in libmmd.dll since Composer XE 2011, if not earlier. My guess is that there is an older version of libmmd.dll on PATH that is being seen first. What I don't see in the Dependency Walker screenshot is the path to LIBMMD being used.
The reason you don't see this referenced in a Debug build is that this routine is used as part of an optimization, which is disabled for debug builds.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you TimP and Steve for the reply.
After several attemps, I have managed to by-pass the problem by selecting:
Project properties > Fortran > Libraries > Runtime Library > Multithreaded
Before I was selecting the Multithread DLL (/libs:dll /threads) option. I am not sure why this solved the problem. I have noticed that the DLL that depends on Fortran increase its size from 203 to 1073 Kb. So, I suppose the missing entry points (functions) are now embeded in the DLL. Still it is a bit strange why is it not working under the Multithread DLL option. Note that there was no change in the system PATH or default library folder under VS2010.
One additional thing I did was to follow these steps to debug under release mode (MS suggested settings):
http://msdn.microsoft.com/en-us/library/fsk896zz.aspx
Thank you, Javier
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Just a quick observation. The steps for debugging under release mode were applied to the C/C++ project using the Fortran DLL. Still these did not solved the problem when the Fortran DLL was built using the Multithreaded DLL option.
Javier
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
What you did was switch from the DLL libraries to the static libraries. This is fine if your DLL is not going to be called from Fortran.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page