Вызовите сгенерированную статическую библиотечную функцию C от кода С

Этот пример показывает, как вызвать сгенерированную библиотечную функцию C от кода С. Это использует статическую библиотечную функцию C absval, описанный в Вызове C/C++ Статическая Библиотечная функция из кода MATLAB.

  1. Напишите функцию 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;
    }
    

  2. Сконфигурируйте свою цель, чтобы интегрировать эту пользовательскую основную функцию C с вашим сгенерированным кодом, как описано в Конфигурируют Сборку для Внешнего Кода C/C++.

    Например, можно задать объект настройки, который указывает на пользовательский код С:

    1. Создайте объект настройки. В MATLAB® запрашивают, введите:

      cfg = coder.config('exe');

    2. Установите свойства пользовательского кода на объекте настройки, как в этих командах в качестве примера:

      cfg.CustomSource = 'main.c';
      cfg.CustomInclude = 'c:\myfiles';

  3. Сгенерируйте исполняемый файл C. Используйте опцию -args, чтобы указать, что вход является действительным, скалярным дважды. В посдказке MATLAB, введите:

    codegen -config cfg  absval -args {0}

  4. Вызовите исполняемый файл. Например:

    absval(-2.75)

Похожие темы