Reputation: 41
I have Abaqus 2020 linked to Intel oneAPI ifort compiler and it runs run ok until I had this issue. "error LNK2019: unresolved external symbol ROTSIG referenced in function umat.R" when I try to use /iface:cref
. Is there any quick way to fix the problem. I use VS 2019 for compiling. The error statement is below
Begin Linking Abaqus/Standard User Subroutines
Creating library standardU.lib and object standardU.exp
swell.obj : error LNK2019: unresolved external symbol ROTSIG referenced in function umat.R
standardU.dll : fatal error LNK1120: 1 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
Upvotes: 2
Views: 1902
Reputation: 41
This issue mainly faced by Abaqus and other windows users who rely on /iface:cref with oneAPI ifort compilers versions 2021.1.1, 2021.1.2 and 2021.2.
The cause of this issue is /iface:cref should set all names ( procedures, data ) to LOWERCASE but that is not happening. Thus, names default to uppercase in object files and libraries. Thus, when Abaqus and other programs look for your functions at link time the references will be unresolved
I could resolve this issue with the option /names:lowercase.
/iface:cref /names:lowercase
In VS Project Properties it is under: Fortran -> External Procedures -> Name Case Interpretation -> "Lower Case (/names:lowercase)
Upvotes: 2