我将 Abaqus 2020 链接到 Intel oneAPI ifort 编译器,并且它运行正常,直到我遇到此问题。当我尝试使用 /iface:cref
时,“错误 LNK2019:函数umat.R 中引用了无法解析的外部符号 ROTSIG”。有没有什么快速的方法可以解决这个问题。我使用VS 2019进行编译。错误提示如下
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
最佳答案
此问题主要由 Abaqus 和其他依赖/iface:cref 以及 oneAPI ifort 编译器版本 2021.1.1、2021.1.2 和 2021.2 的 Windows 用户面临。
此问题的原因是/iface:cref 应将所有名称(过程、数据)设置为小写,但这种情况没有发生。因此,目标文件和库中的名称默认为大写。因此,当 Abaqus 和其他程序在链接时查找您的函数时,引用将无法解析
我可以使用选项/names:lowercase 解决此问题。
/iface:cref/names:小写
在 VS 项目属性中,它位于: 福特兰语言 -> 外部过程 -> 名称大小写解释 -> “小写 (/names:lowercase)
关于fortran - 链接 Abaqus/Standard 用户子例程时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67367668/