我正在尝试向OpenModelica 1.13.0添加一个外部FORTRAN代码。我的函数和模型定义是正确的,并且FORTRAN代码正常工作。但是,每当我向代码添加一个write(*,*)或read(*,*)方法时,我得到以下错误作为OpenModelica模拟输出:
undefined reference to _gfortran_transfer_real_write@@GFORTRAN_1.4
我想知道我该如何解决这个问题。
谢谢。
发布于 2021-08-04 04:20:22
这(可能)是因为您没有将gfortran与模拟联系起来。如果库是共享的(so、DLL、dylib),依赖关系通常是自动处理的,因此您可能正在尝试链接静态库(.a)或目标文件(.o、.obj)。
在你的外部函数中,添加一个注解Library="gfortran"或者Library={"mylib", "gfortran"},因为你可能已经在里面有了你的库。
还要注意的是,OpenModelica 1.13越来越旧,应该进行升级。
发布于 2021-08-04 10:52:48
对于OMShell,可以在模拟设置>常规> C/C++编译器标志中调用setCFlags(" -lgfortran ")或在OMEdit中添加-lgfortran。它会解决这个问题。
https://stackoverflow.com/questions/68635996
复制相似问题