coder.LAPACKCallback.updateBuildInfo

Класс: coder. LAPACKCallback
Пакет: coder

Обновите сведения о сборке для ссылки на определенную библиотеку LAPACK

Синтаксис

coder.LAPACKCallback.updateBuildInfo(buildInfo, buildctx)

Описание

coder.LAPACKCallback.updateBuildInfo(buildInfo, buildctx) обновляет информационный объект сборки buildInfo с информацией, необходимой для соединения процесса сборки с определенной библиотекой LAPACK.

coder.LAPACKCallback - абстрактный класс для определения класса коллбэка LAPACK. Класс коллбэка LAPACK задает библиотеку LAPACK и файл заголовка LAPACKE, которые будут использоваться для вызовов LAPACK в коде, сгенерированном из MATLAB® код. Во время генерации кода, если вы задаете класс коллбэка LAPACK, для определенных вызовов линейной алгебры генератор кода производит вызовы LAPACK в автономном коде.

Входные параметры

buildInfo

Построение информационного объекта. После генерации кода этот объект содержит стандартный проект, опцию сборки и информацию о зависимостях. В updateBuildInfo метод, чтобы добавить информацию для ссылки на библиотеку LAPACK, используйте методы информации о сборке.

buildctx

coder.BuildConfig объект. Используйте coder.BuildConfig getStdLibInfo метод, чтобы получить расширение файла конкретной платформы для использования во время ссылки.

Примеры

расширить все

В этом примере показано, как написать updateBuildInfo метод для обновления информационного объекта сборки информацией, необходимой для связи с определенной библиотекой LAPACK.

В классе, который происходит от coder.LAPACKCallback, напишите метод updateBuildInfo. Используйте этот пример класса коллбэка LAPACK в качестве шаблона.

classdef useMyLAPACK < coder.LAPACKCallback
    methods (Static)
        function hn = getHeaderFilename()
            hn = 'mylapacke_custom.h';
        end
        function updateBuildInfo(buildInfo, buildctx)
            buildInfo.addIncludePaths(fullfile(pwd,'include'));
            libName = 'mylapack';
            libPath = fullfile(pwd,'lib');
            [~,linkLibExt] = buildctx.getStdLibInfo();
            buildInfo.addLinkObjects([libName linkLibExt], libPath, ...
                '', true, true);
            buildInfo.addDefines('HAVE_LAPACK_CONFIG_H');
            buildInfo.addDefines('LAPACK_COMPLEX_STRUCTURE');
            buildInfo.addDefines('LAPACK_ILP64'); 
        end
    end
end

Замените mylapack с именем библиотеки LAPACK. При необходимости измените пути включения и библиотеки.

Чтобы обновить информацию о сборке с указанием местоположения заголовочных файлов, используйте информацию о сборке addIncludePaths способ.

Для доступа к расширения библиотеки для конкретной платформы используйте coder.BuildConfig getStdLibInfo способ.

Чтобы обновить информацию о сборке с именем и расположением библиотеки LAPACK, используйте информацию о сборке addlinkObjects способ.

Если компилятор поддерживает только комплексные данные типа, которые представлены в виде структур, включите эти линии.

buildInfo.addDefines('HAVE_LAPACK_CONFIG_H');
buildInfo.addDefines('LAPACK_COMPLEX_STRUCTURE');

Необходимо указать целые типы, которые использует библиотека LAPACK. Отсутствие указания этого целого типа может привести к неправильному поведению или сбоям. Выполните одно из следующих действий:

  • Включите эти линии в updateBuildInfo способ.

    buildInfo.addDefines('HAVE_LAPACK_CONFIG_H');
    buildInfo.addDefines('LAPACK_ILP64');

  • Кроме того, можно непосредственно задать целый тип, который использует библиотека LAPACK. Для примера, если целый тип long long, включите эту линию в updateBuildInfo способ.

    buildInfo.addDefines('lapack_int=long long');