Этот пример показывает, как вызвать сгенерированную библиотечную функцию C от кода С. Это использует статическую библиотечную функцию C absval
, описанный в Вызове C/C++ Статическая Библиотечная функция из кода MATLAB.
Напишите функцию main
в C, который делает следующее:
Включает сгенерированный заголовочный файл, который содержит прототипов функции для библиотечной функции.
Вызывает инициализировать функцию прежде, чем вызвать библиотечную функцию впервые.
Вызывает оконечную функцию после вызова библиотечной функции в последний раз.
Вот пример функции main
C, которая вызывает библиотечную функцию absval
:
/* ** main.c */ #include <stdio.h> #include <stdlib.h> #include "absval.h" int main(int argc, char *argv[]) { absval_initialize(); printf("absval(-2.75)=%g\n", absval(-2.75)); absval_terminate(); return 0; }
Сконфигурируйте свою цель, чтобы интегрировать эту пользовательскую основную функцию C с вашим сгенерированным кодом, как описано в Конфигурируют Сборку для Внешнего Кода C/C++.
Например, можно задать объект настройки, который указывает на пользовательский код С:
Создайте объект настройки. В MATLAB® запрашивают, введите:
cfg = coder.config('exe');
Установите свойства пользовательского кода на объекте настройки, как в этих командах в качестве примера:
cfg.CustomSource = 'main.c'; cfg.CustomInclude = 'c:\myfiles';
Сгенерируйте исполняемый файл C. Используйте опцию -args
, чтобы указать, что вход является действительным, скалярным дважды. В посдказке MATLAB, введите:
codegen -config cfg absval -args {0}
Вызовите исполняемый файл. Например:
absval(-2.75)