微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

链接 Abaqus/标准用户子程序的问题

如何解决链接 Abaqus/标准用户子程序的问题

我将 Abaqus 2020 链接到英特尔 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

解决方法

此问题主要由依赖 /iface:cref 和 oneAPI ifort 编译器版本 2021.1.1、2021.1.2 和 2021.2 的 Abaqus 和其他 Windows 用户面临。

此问题的原因是 /iface:cref 应将所有名称(过程、数据)设置为 LOWERCASE,但这并未发生。因此,名称在目标文件和库中默认为大写。因此,当 Abaqus 和其他程序在链接时查找您的函数时,引用将无法解析

我可以使用 /names:lowercase 选项解决这个问题。

/iface:cref /names:小写

在 VS 项目属性中,它位于: 复式 -> 外部程序 -> 名称大小写解释 -> "小写 (/names:lowercase)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。