exponenta event banner

кодер. LAPACKCallback.updateBuildInfo

Класс: кодер. LAPACKCallback
Пакет: кодер

Обновление сведений о построении для связи с определенной библиотекой 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');