Modelica:我可以在Windows中使用IncludeDirectory指定绝对路径吗?

Modelica:我可以在Windows中使用IncludeDirectory指定绝对路径吗?,modelica,dymola,Modelica,Dymola,对不起,我的问题是noob。我试图学习如何在Modelica模型中集成C函数。我很难理解如何指定外部函数的路径 我创建了一个外部C函数,并保存在与模型目录或工作目录不同的目录中。我认为使用IncludeDirectory注释将允许我引用C函数的位置,但我无法让它工作 impure function computeHeat "Modelica wrapper for an embedded C function controller" input Real T; input Real Tbar;

对不起,我的问题是noob。我试图学习如何在Modelica模型中集成C函数。我很难理解如何指定外部函数的路径

我创建了一个外部C函数,并保存在与模型目录或工作目录不同的目录中。我认为使用IncludeDirectory注释将允许我引用C函数的位置,但我无法让它工作

impure function computeHeat "Modelica wrapper for an embedded C function controller"
input Real T;
input Real Tbar;
input Real Q;
output Real heat;
external "C"annotation(Include="#include<ComputeHeat.c>",IncludeDirectory="E:/temp/source_C");
end computeHeat;
当我试图编译一个演示示例模型时,我得到了以下消息

编译器消息:

编译和链接模型Visual C++。p> D模型c dsmodel.c10:致命错误C1083:无法打开包含文件:“ComputeHeat.c”:没有此类文件或目录


生成Dymosim时出错。

包含的目录应为URI,并且Dymola中当前仅支持modelica URI

因此,将函数computeHeat存储在例如e:/temp/computeHeat.mo中 并使用IncludeDirectory=modelica://computeHeat/source_C

一般来说,我会假设computeHeat是包MyPackage的一部分,存储为e:/temp/MyPackage/package.mo和更多文件,例如computeHeat.mo


在这种情况下,创建e:/temp/MyPackage/Resources/source\u C并使用IncludeDirectory=modelica://MyPackage/source_C 建议使用后一种情况,因为您可以将MyPackage复制为目录,源代码如下。

包含的目录应该是URI,并且Dymola中当前仅支持modelica URI

因此,将函数computeHeat存储在例如e:/temp/computeHeat.mo中 并使用IncludeDirectory=modelica://computeHeat/source_C

一般来说,我会假设computeHeat是包MyPackage的一部分,存储为e:/temp/MyPackage/package.mo和更多文件,例如computeHeat.mo


在这种情况下,创建e:/temp/MyPackage/Resources/source\u C并使用IncludeDirectory=modelica://MyPackage/source_C 后一种情况是推荐的,因为您可以将MyPackage复制为目录,源代码如下。

所以通常我必须将我的C函数目录或数据库放在package文件夹中?例如,我可以将我的所有C函数放在共享网络驱动器X上,将我的包放在本地驱动器C上吗?因此,通常我必须将我的C函数目录或数据库放在包文件夹中?例如,我可以在共享网络驱动器X上使用我的所有C功能,在本地驱动器C上使用我的软件包吗?