Hello,
I have a problem during linking my umat() procedure written in C++.
I am using Windows 10, Abaqus 2022 and Microsoft Visual Studio 2022 Community (compiler cl version 19.36.32537 for x64).
Compilation completes fine but the linker aborts with the following error messages.
---------------------------------------------------------------- msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __vcrt_initialize referenced in function __scrt_initialize_crt msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __vcrt_uninitialize referenced in function __scrt_initialize_crt msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __vcrt_uninitialize_critical referenced in function __scrt_dllmain_uninitialize_critical msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __vcrt_thread_attach referenced in function __scrt_dllmain_crt_thread_attach msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __vcrt_thread_detach referenced in function __scrt_dllmain_crt_thread_attach msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol _is_c_termination_complete referenced in function __scrt_dllmain_uninitialize_c msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __acrt_initialize referenced in function __scrt_initialize_crt msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __acrt_uninitialize referenced in function __scrt_uninitialize_crt msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __acrt_uninitialize_critical referenced in function __scrt_dllmain_uninitialize_critical msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __acrt_thread_attach referenced in function __scrt_dllmain_crt_thread_attach msvcrt.lib(utility.obj) : error LNK2019: unresolved external symbol __acrt_thread_detach referenced in function __scrt_dllmain_crt_thread_detach standardU.dll : fatal error LNK1120: 11 unresolved externals Abaqus Error: Problem during linking - Abaqus/Standard User Subroutines. This error may be due to a mismatch in the Abaqus user subroutine arguments. These arguments sometimes change from release to release, so user subroutines used with a previous release of Abaqus may need to be adjusted. Abaqus/Analysis exited with errors ----------------------------------------------------------------
These errors occurs particularly when I am trying to construct an object as static one within the umat() body. There are no such problems with initializing static primitive types or non-static objects; jobs run and finish almost fine in their cases (except for "warning LNK4210: .CRT section exists; there may be unhandled static initializers or terminators").
Passing /verbose:lib into the linker's options reports that the mentioned msvcrt.lib is taken from "E:\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\lib\x64\msvcrt.lib". This path looks like OK for me.
The compiler and linker are called via Abaqus Commands' terminal with the following options (specified in "E:\SIMULIA\EstProducts\2022\win_b64\SMA\site\win86_64.env").
---------------------------------------------------------------- compile_cpp=['cl', '/c', '/W0', '/MD', '/TP', '/EHsc', '/DNDEBUG', '/DWIN32', '/DTP_IP', '/D_CONSOLE', '/DNTI', '/DFLT_LIC', '/DOL_DOC', '/D__LIB__', '/DHKS_NT', '/D_WINDOWS_SOURCE', '/DFAR=', '/D_WINDOWS', '/DABQ_WIN86_64', '/std:c++20', '%P', '/O1', # <-- Optimization # '/Zi', # <-- Debug symbols '/I%I', '/I'+abaHomeInc] ---------------------------------------------------------------- link_sl=['LINK', '/verbose:lib', '/nologo', '/NOENTRY', '/INCREMENTAL:NO', '/subsystem:console', '/machine:AMD64', '/NODEFAULTLIB:LIBC.LIB', '/NODEFAULTLIB:LIBCMT.LIB', '/DEFAULTLIB:OLDNAMES.LIB', '/DEFAULTLIB:LIBIFCOREMD.LIB', '/DEFAULTLIB:LIBIFPORTMD.LIB', '/DEFAULTLIB:LIBMMD.LIB', '/DEFAULTLIB:kernel32.lib', '/DEFAULTLIB:user32.lib', '/DEFAULTLIB:advapi32.lib', '/FIXED:NO', '/dll', #'/debug', # <-- Debugging '/def:%E', '/out:%U', '%F', '%A', '%L', '%B', 'oldnames.lib', 'user32.lib', 'ws2_32.lib', 'netapi32.lib', 'advapi32.lib', 'msvcrt.lib', 'vcruntime.lib', 'ucrt.lib'] ----------------------------------------------------------------
Is there a way to fix the above problems (or, perhaps, am I misunderstood something)?
I am hope for your help.