在部署的应用程序中调用共享库
MATLAB® 中的 loadlibrary 函数可用于将共享库加载到 MATLAB 中。
编译的应用程序不支持使用头文件加载库。因此,要创建将 loadlibrary 函数与头文件一起使用的应用程序,请遵循以下步骤:
创建原型 MATLAB 文件。假设您使用以下语法调用
loadlibrary。loadlibrary(library, header)
在 MATLAB 中仅运行一次以下命令来创建原型文件:
这将在当前文件夹中创建loadlibrary(library, header, 'mfilename', 'mylibrarymfile');
。如果您使用的是 Windows®,则还会在当前文件夹中创建名为mylibrarymfile.mlibrary_thunk_pcwin64.dll的另一个文件。将对 MATLAB 中的
loadlibrary的调用更改如下:loadlibrary(library, @mylibrarymfile)
编译并部署应用程序。
如果要将库集成到部署的应用程序中,请指定库的
.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 操作系统模块加载到调用方进程的地址空间中。