У меня есть файл Modelica, который ссылается на код c во время моделирования через файл внешней библиотеки * .a.
Например:
model CallAdd
input Real FirstInput(start=0);
input Real SecondInput(start=0);
output Real FMUOutput(start=0);
function CAdd
input Real x(start=0);
input Real y(start=0);
output Real z(start=0);
external "C" annotation(Library = "CAdd", LibraryDirectory = "modelica://CallAdd");
end CAdd;
equation
FMUOutput = CAdd(FirstInput,SecondInput);
annotation(uses(Modelica(version = "3.2.1")));
end CallAdd;
При открытии модели Modelica в OpenModelica требуемые файлы загружаются автоматически, потому что это имитирует и дает соответствующие результаты.
Однако, когда я пытаюсь скомпилировать файл Modelica с помощью JModelica-SDK-1.12, я получаю сообщение об ошибке, что файл библиотеки * .a не может быть найден.
Итак, мой вопрос: Как правильно ссылаться на дополнительные файлы при использовании compile_fmu в JModelica?
Безуспешно я пробовал:
# Import the compiler function
from pymodelica import compile_fmu
model_name = "CallAdd"
mo_file = "CallAdd.mo"
# Compile the model and save the return argument, for use later if wanted
my_fmu = compile_fmu(model_name, mo_file, target="cs",compiler_options = {'extra_lib_dirs':'C:/ToFolderContainingLib/'})
Странно то, что когда я использовал JModelica-1.17 (не SDK), файл компилировался нормально, но результаты не имели смысла. Мне порекомендовали попробовать версию SDK, чтобы увидеть, исправила ли она мои ошибки в моем предыдущем сообщении здесь.