主要内容

在部署的应用程序中调用共享库

MATLAB® 中的 loadlibrary 函数可用于将共享库加载到 MATLAB 中。

编译的应用程序不支持使用头文件加载库。因此,要创建将 loadlibrary 函数与头文件一起使用的应用程序,请遵循以下步骤:

  1. 创建原型 MATLAB 文件。假设您使用以下语法调用 loadlibrary

    loadlibrary(library, header)

    在 MATLAB 中仅运行一次以下命令来创建原型文件:

    loadlibrary(library, header, 'mfilename', 'mylibrarymfile'); 
    这将在当前文件夹中创建 mylibrarymfile.m。如果您使用的是 Windows®,则还会在当前文件夹中创建名为 library_thunk_pcwin64.dll 的另一个文件。

  2. 将对 MATLAB 中的 loadlibrary 的调用更改如下:

    loadlibrary(library, @mylibrarymfile)

  3. 编译并部署应用程序。

    • 如果要将库集成到部署的应用程序中,请指定库的 .dll 以及 library_thunk_pcwin64.dll,如果已创建,请使用 mcc 命令的 -a 选项。如果您使用某个编译器 App,请将 .dll 文件添加到该 App 的运行应用程序所需的文件部分。

    • 如果您将库作为未与部署的应用程序集成的外部文件提供,请将库 .dll 文件放入与编译的应用程序相同的文件夹中。如果您使用的是 Windows,则必须将 library_thunk_pcwin64.dll 集成到编译的应用程序中。

      这种方法的好处是,您可以用更新的版本替换库,而无需重新编译部署的应用程序。仅当库中函数的函数签名未被更改时,用不同版本替换库才可行。这是因为 mylibrarymfile.mlibrary_thunk_pcwin64.dll 与库中函数的函数签名相关联。

注意

您不能使用 MATLAB 中的 loadlibrary 来加载随 MATLAB 构建的共享库。有关 loadlibrary 的详细信息,请参阅Limitations to Shared Library Support

注意

操作系统有一个 loadlibrary 函数,该函数将指定的 Windows 操作系统模块加载到调用方进程的地址空间中。

另请参阅

主题