Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28384 Discussions

unresolved external symbol _for_stop_core_quiet (continuation of 1237762)

OptiAndrew
Beginner
6,720 Views

I must preface that this is also a BIT of a Visual Studio question, but discussion #1237762 says to make sure you're using the same version of C++ compilers for everything.

First, I'm pretty sure that I am as I have all of my code contained in the same project (one master project with several sub projects building static LIBs) and I still get "unresolved external symbol _for_stop_core_quiet referenced in function _INTLAS" (INTLAS is a Fortran routine)

Second, where do you even check what versions of compilers you are using for a specific project? I have been through seemingly every VS setting and can't find where that is changeable.

In the original thread, I saw question if 2019 16.8 Preview was being used, which I am indeed using.

Here are both my old and new setups, but installed on the same computer. Thanks for ANY help!

=============== Old Setup ================

Microsoft Visual Studio 2010
Version 10.0.40219.1 SP1Rel
Microsoft .NET Framework
Version 4.8.03752 SP1Rel

Installed Version: Professional

Microsoft Visual C++ 2010 01018-587-3756007-70116
Microsoft Visual C++ 2010

Microsoft Visual Studio 2010 Team Explorer 01018-587-3756007-70116
Microsoft Visual Studio 2010 Team Explorer

Critical Update for Microsoft Visual Studio 2010 Professional - ENU (KB2938807) KB2938807
Hotfix for Microsoft Visual Studio 2010 Professional - ENU (KB2529927) KB2529927
Hotfix for Microsoft Visual Studio 2010 Professional - ENU (KB2548139) KB2548139
Hotfix for Microsoft Visual Studio 2010 Professional - ENU (KB2549864) KB2549864
Hotfix for Microsoft Visual Studio 2010 Professional - ENU (KB2565057) KB2565057
Hotfix for Microsoft Visual Studio 2010 Professional - ENU (KB2635973) KB2635973
Hotfix for Microsoft Visual Studio 2010 Professional - ENU (KB2890573) KB2890573
Hotfix for Microsoft Visual Studio 2010 Professional - ENU (KB3002340) KB3002340
Intel(R) Visual Fortran Package ID: w_fcompxe_2011.7.258
Intel(R) Visual Fortran Composer XE 2011 Update 7 Integration for Microsoft Visual Studio* Microsoft Visual Studio 2010 Professional - ENU Service Pack 1 (KB983509) KB983509
Security Update for Microsoft Visual Studio 2010 Professional - ENU (KB2645410) KB2645410

================= New Setup =============

Microsoft Visual Studio Professional 2019
Version 16.8.6
VisualStudio.16.Release/16.8.6+31019.35
Microsoft .NET Framework
Version 4.8.03752

Installed Version: Professional

Visual C++ 2019 00435-60000-00000-AA343
Microsoft Visual C++ 2019

ASP.NET and Web Tools 2019 16.8.560.26713
ASP.NET and Web Tools 2019

Azure App Service Tools v3.0.0 16.8.560.26713
Azure App Service Tools v3.0.0

C# Tools 3.8.0-5.20604.10+9ed4b774d20940880de8df1ca8b07508aa01c8cd
Common Azure Tools 1.10
Cookiecutter 16.8.20241.2
Intel® Fortran Compiler Package ID: w_oneAPI_2021.1.2.148
Intel® Fortran Compiler – toolkit version: 2021.1.2, extension version 19.2.0061.16, Package ID: w_oneAPI_2021.1.2.148, Copyright © 2002-2020 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.

IntelliCode Extension 1.0
IntelliCode Visual Studio Extension Detailed Info

Microsoft Azure Tools 2.9
Microsoft Azure Tools for Microsoft Visual Studio 2019 - v2.9.30924.1

Microsoft JVM Debugger 1.0
Microsoft MI-Based Debugger 1.0
Microsoft Visual C++ Wizards 1.0
Microsoft Visual C++ Wizards

Microsoft Visual Studio VC Package 1.0
Microsoft Visual Studio VC Package

NuGet Package Manager 5.8.1
ProjectServicesPackage Extension 1.0
ProjectServicesPackage Visual Studio Extension Detailed Info

Python 16.8.20241.2
Python - Conda support 16.8.20241.2
Python - Django support 16.8.20241.2
Python - IronPython support 16.8.20241.2
Python - Profiling support 16.8.20241.2
Python - VC Project Support 16.1.19129.1
Test Adapter for Boost.Test 1.0
Test Adapter for Google Test 1.0
TypeScript Tools 16.0.21016.2001
TypeScript Tools for Microsoft Visual Studio

Visual Basic Tools 3.8.0-5.20604.10+9ed4b774d20940880de8df1ca8b07508aa01c8cd
Visual Studio Code Debug Adapter Host Package 1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio

Visual Studio Tools for CMake 1.0
Visual Studio Tools for CMake

0 Kudos
1 Solution
Steve_Lionel
Honored Contributor III
6,469 Views

This log file shows a successful link, but there's something I don't understand...

        Found _for_stop_core_quiet
          Referenced in a0flib-take2.lib(axmain.obj)
          Loaded a0flib-take2.lib(libifcoremdd.dll)

It almost looks to me as if someone inserted a copy of libifcoremdd.lib into import library a0flib-take2.lib. That isn't right. Indeed, later, the linker says that libifcoremdd.lib was not used.

View solution in original post

0 Kudos
33 Replies
Steve_Lionel
Honored Contributor III
4,781 Views

That symbol is in the Intel Fortran Run-time library and has nothing to do with Visual Studio. If you are getting errors that this symbol is missing, it means that you are compiling with a compiler that is newer than the Fortran support libraries you're linking to.  This sometimes happens when one copies old support libraries into the project folder.

An easy way to diagnose this is to enable the project option Linker > General > Show Progress to "Show some progress messages (/verbose:lib), repeat the build, then search the buildlog.htm (in the Debug or Release folder) for "libifcore". Look to see what the path is for the library containing that string.

 
0 Kudos
OptiAndrew
Beginner
4,773 Views

Awesome. Thanks, I will definitely check that out! Thanks for the quick response, Steve!

0 Kudos
OptiAndrew
Beginner
4,763 Views

Followed your steps, and anytime I see "libifcore" in a path, it's


Searching C:\Program Files (x86)\Intel\oneAPI\compiler\2021.1.2\windows\compiler\lib\ia32_win\libifcoremdd.lib

Which is what I recently installed. So all of my little subprojects look like they're using the same path.

Additional information but possible unrelated: When we upgraded to VS 2010 years ago, we suddenly had to start including MSVCIRTD.DLL, msvcp100d.dll, msvcr100.dll, msvcr100d.dll, and msvcrtd.dll in our EXE directory so they would run. I wasn't in development at the time, but could those be the culprits?

0 Kudos
OptiAndrew
Beginner
4,749 Views

It looks like the problem is with my Fortran library, as you mentioned, but I still don't know what. I'm trying to get everything whittled down to some bare bones that show the error. So far, if my "int WINAPI WinMain()" routine just calls our command line parser it's fine. But if I call a Fortran routine afterwards, I get the error.

Still pounding on it and still not out of the woods, but learning a lot...

0 Kudos
Steve_Lionel
Honored Contributor III
4,746 Views

Hmm - that symbol is in my copy of libifcoremdd.lib. It supports the Fortran STOP statement.

I gather that this is a mixed-language application? It might have something to do with the order things are searched. Try adding libifcoremdd.lib to Linker > Input > Additional Dependencies and see if that helps. If not, please change "Show Progress" to "Show all progress messages", repeat the build, then put the buildlog.htm into a ZIP file and attach it to a reply here.

 
0 Kudos
OptiAndrew
Beginner
4,721 Views

Yes, this is C/C++ for the GUI wrapped around Fortran for number-crunching.

I see for_stop_core_quiet in my libifcoremdd.lib library also. No dice on adding libifcoremdd.lib as an additional dependency.

However, here is something interesting I found when attempting to strip our code down to a bare minimum and still get errors. I noticed a Fortran STOP command that raised my eyebrows. If I comment it out, I don't get the error anymore. Stranger, STOP is in a Fortran routine I don't even call. It's mere existence anywhere in Fortran seems to cause chaos. Ever seen that? 

0 Kudos
Steve_Lionel
Honored Contributor III
4,683 Views

If the STOP statement is there, the linker will try to pull in the routine that supports it. It doesn't matter whether you call the containing procedure or not.

Specifying Linker > General > Show Progress > Show All Progress Messages and examining the build output might give a clue as to why libifcoremdd.lib isn't being searched.

0 Kudos
OptiAndrew
Beginner
4,669 Views

Here is a zip of my LOG file (not sure why I'm not getting BuildLog.htm, but I will fight that battle at a later date). It just dawned on me that I can use "CALL EXIT(0)" to the same effect, and we only have STOP in our "elegant crash" routine, so easy hunting!

In any case, I was indeed able to successfully build a fully working version of one of our EXEs in VS 2019, so THAT'S a relief!

0 Kudos
Steve_Lionel
Honored Contributor III
6,470 Views

This log file shows a successful link, but there's something I don't understand...

        Found _for_stop_core_quiet
          Referenced in a0flib-take2.lib(axmain.obj)
          Loaded a0flib-take2.lib(libifcoremdd.dll)

It almost looks to me as if someone inserted a copy of libifcoremdd.lib into import library a0flib-take2.lib. That isn't right. Indeed, later, the linker says that libifcoremdd.lib was not used.

0 Kudos
OptiAndrew
Beginner
4,656 Views

Oops. While panicking, I added libifcoremdd.dll into Config -> General -> Librarian -> Addt'l Dependencies of my Fortran subproject and forgot to remove it when it didn't do anything.

I have removed it, rebuilt with a STOP command, and got same error. Attached is the new LOG file.

0 Kudos
Steve_Lionel
Honored Contributor III
4,650 Views

But that's not what I asked you to add. I said add libifcoremdd.lib, not .dll.

0 Kudos
OptiAndrew
Beginner
4,643 Views

Ahh, yes. My fault. I meant to enter .lib but incorrectly used .dll cause it was on my brain as one of the other projects builds a DLL.

Strange, I removed that dependency and my LOG file still has libifcoremdd.dll all over the place. I wonder if VS didn't remove it from all the places it needed to remove it from and perhaps I have some ghosts in my project.

Also strange, I have another VS2019 project that builds an EXE using STOP, and it works just fine. My log file doesn't mention libifcoremdd.lib at all, but it does mention libifcoremt.lib. I'm guessing MDD=multithread-debug and MT=multithread.

Sorry for being so scatter-brained. I've been looking at this for a week and I know I'm getting close!

0 Kudos
Steve_Lionel
Honored Contributor III
4,617 Views

Your new log appears to show a successful link.

 
0 Kudos
OptiAndrew
Beginner
4,600 Views

Awesome. I have a fully working project, so I'm gonna build it back up from the ground to get a template made.

Steve, I really do appreciate the help and I learned a LOT about the Fortran packages.

Thanks!

0 Kudos
cxqi
Novice
4,426 Views

Hi Steve,

Recently I installed the oneAPI and had the trouble that ''the entry point for_stop_core_quiet is not located''. I could build the program without any error but I got the error when I executed the program.

I read the replies on this topic and it seems that the issue is related to the libifcoremd.dll. I check my lib path 'C:\Program Files (x86)\Intel\oneAPI\compiler\2021.1.1\windows\lib\x64' and did not find the libifcoremd.dll. I added this file to the path and rebuild the solution. It doesn't work. Could you please give me a hint or suggestion that I can figure it out?

Here I attached a screenshot of the problem.

Thanks,

Chaoxian

Capture.PNG

0 Kudos
Steve_Lionel
Honored Contributor III
4,420 Views

DLLs aren't in the library path. Look in C:\Program Files (x86)\Intel\oneAPI\compiler\2021.1.2\windows\redist\intel64_win\compiler

Why did you mask off the name of the DLL? That would have told me something useful. Please repost it without the masking. (If you want to hide the EXE name, fine.)

That you got this error, and not that libifcoremd.dll couldn't be found, tells me that you have an old copy of libifcoremd.dll that it is finding (and by old, I mean at least two years old.)

Does that DLL exist in C:\Program Files (x86)\Common Files\intel\Shared Libraries\redist\intel64_win\compiler ? Right click on it, select Properties > Details. What is the File Version?

 
0 Kudos
cxqi
Novice
4,409 Views

Hi Steve, 

It is nice to hear from you. I just check the path 'C:\Program Files (x86)\Intel\oneAPI\compiler\2021.1.1\windows\redist\intel64_win\compiler'. It contains the DLL files that I mentioned in the previous post. The file version is 20.0.1.0. Here I attach the screen of the issue and the files in that path.  I have no idea about this problem. It never happens when I used Parallel Studio XE to compile.

Please take a look and let me if you have any ideas.

Very much appreciate it,

Chaoxian

Capture.PNG

Capture2.PNG

Capture3.PNG

0 Kudos
Steve_Lionel
Honored Contributor III
4,397 Views

That's not the path I asked you to check.

0 Kudos
cxqi
Novice
4,391 Views

Sorry about that. I check the path you mentioned in the last post. I did find the DLL file. The file version is 20.0.1.0. Here I attach the screenshot of the path and also the files.

cxqi_0-1616075487215.png

 

0 Kudos
Steve_Lionel
Honored Contributor III
4,411 Views

Go to Intel® oneAPI standalone component installation files

Select Runtime Versions > Windows > Intel Fortran Compiler Classic for Windows

Download and install that.

 
Reply