专栏
标签
使用了开源的coolprop物性库模型,但是编译总是报错
一般问题
发布于 2026-02-13 16:33:25
查看 11过去135天

报错的log如下,有没有大佬知道怎么回事
External include directories:

C:/Users/Administrator/Desktop/ExternalMedia/Modelica/ExternalMedia
C:/Users/Administrator/Documents/MWORKS
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527
C:\Users\Administrator\Desktop\ExternalMedia\Modelica\ExternalMedia\Resources\Include
C:\Users\Administrator\Documents\MWORKS

include directories:
momodel.c
momodel_data.c
momodel_func.c
momodel_info.c
momodel_extern_inc.c
mws_user_alg.c
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(37) : error C2079: “mwsHelprecord0_”使用未定义的 struct“ThermodynamicState”
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(38) : error C2224: “.T”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(39) : error C2224: “.a”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(40) : error C2224: “.beta”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(41) : error C2224: “.cp”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(42) : error C2224: “.cv”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(43) : error C2224: “.d”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(44) : error C2224: “.ddhp”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(45) : error C2224: “.ddph”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(46) : error C2224: “.eta”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(47) : error C2224: “.h”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(48) : error C2224: “.kappa”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(49) : error C2224: “.lambda”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(50) : error C2224: “.p”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(51) : error C2224: “.phase”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(52) : error C2224: “.s”的左侧必须具有结构/联合类型
C:\Users\Administrator\Documents\MWORKS\Simulation\MwSolver_260213_162707_527\extern_inc\momodel_extern_inc.c(57) : error C2224: “.T”的左侧必须具有结构/联合类型

所属专栏:Sysplorer基础平台
产品信息:Sysplorer系统建模仿真环境
航空航天系统建模MWORKS体验官

全部回答 1

发布于 2026-02-25 08:53:16

您好,出现该问题的原因可能是因为外部 C 函数中使用的结构体(struct)名称与 Modelica 模型中的记录(record)名称不匹配,或者缺少该结构体的定义。解决方法如下:
1.确认结构体定义:请检查 ExternalMedia 库的资源文件,通常在其 Resources/Include 目录下,应该有一个或多个头文件(.h 文件)定义了 struct ThermodynamicState。
2.确保名称匹配:请确保 C 代码中结构体的名称就是 ThermodynamicState,不能有任何差异(例如大小写不同或名称不一致)。
3.检查包含路径:您已经在 External include directories 中指定了路径 C:\Users\Administrator\Desktop\ExternalMedia\Modelica\ExternalMedia\Resources\Include。请确认该路径下确实包含了定义 struct ThermodynamicState 的头文件。如果该头文件在其他位置,请将其路径添加到外部包含目录中。
建议您使用Sysplorer基础热流体模型库中提供的Coolprop(TYMedia.CoolProp),如下图所示
image.png

用户
和原帖交流更多问题细节吧,去
我要发帖 我要发帖
资料中心 资料中心
查看更多>
热门帖子 热门帖子
主要贡献者 主要贡献者
过去7天