使用 MATLAB 代码创建 C 共享库
支持的平台:Windows®、Linux®、Mac
此示例说明如何使用 MATLAB® 函数创建 C 共享库。目标系统不需要 MATLAB 的许可副本。
在 MATLAB 中创建函数
在 MATLAB 中,检查您想要打包的 MATLAB 代码。
对于此示例,将 MATLAB 附带的
matrix文件夹复制到您的工作文件夹。copyfile(fullfile(matlabroot,'extern','examples','compilersdk','c_cpp','matrix'),'matrix')
导航到工作文件夹中的新
matrix子文件夹。检查并测试函数
addmatrix.m、multiplymatrix.m和eigmatrix.m。在 MATLAB 命令提示符下,输入
addmatrix([1 4 7; 2 5 8; 3 6 9], [1 4 7; 2 5 8; 3 6 9])。输出为:
ans = 2 8 14 4 10 16 6 12 18在 MATLAB 命令提示符下,输入
multiplymatrix([1 4 7; 2 5 8; 3 6 9], [1 4 7; 2 5 8; 3 6 9])。输出为:
ans = 30 66 102 36 81 126 42 96 150在 MATLAB 命令提示符下,输入
eigmatrix([1 4 7; 2 5 8; 3 6 9])。输出为:
ans = 16.1168 -1.1168 -0.0000
使用 compiler.build.cSharedLibrary 创建 C 共享库
使用
compiler.build.cSharedLibrary函数编译 C 共享库。使用名称-值参量指定库名称并启用详尽输出。buildResults = compiler.build.cSharedLibrary(["addmatrix.m", ... "eigmatrix.m","multiplymatrix.m"], ... 'LibraryName','libmatrix', ... 'Verbose','on');
您可以使用名称-值参量在
compiler.build命令中指定其他选项。有关详细信息,请参阅compiler.build.cSharedLibrary。compiler.build.Results对象buildResults包含有关编译类型、生成的文件、包含的支持包和编译选项的信息。该函数会在当前工作目录中名为
libmatrixcSharedLibrary的文件夹中生成以下文件:GettingStarted.html- 包含有关集成您共享库的信息的 HTML 文件。includedSupportPackages.txt- 列出库中包含的所有支持文件的文本文件。libmatrix.c- C 源代码文件。libmatrix.def- 为链接器提供模块信息的模块定义文件。libmatrix.dll- 动态链接库文件。libmatrix.exports- 包含所有非静态函数名称的导出文件。libmatrix.h- C 头文件。libmatrix.lib- 导入库文件。文件扩展名在 Mac 上为.dylib,在 Linux 上为.so。mccExcludedFiles.log- 包含应用程序中未包含的任何工具箱函数列表的日志文件。有关不支持的函数的信息,请参阅 MATLAB Compiler 限制。readme.txt- 包含打包信息的文本文件。requiredMCRProducts.txt- 包含 MATLAB Runtime 运行应用程序所需产品的产品 ID 的文本文件。unresolvedSymbols.txt- 包含有关未解析符号的信息的文本文件。
注意
生成的库不包括 MATLAB Runtime 或安装程序。要使用
buildResults对象创建安装程序,请参阅compiler.package.installer。
在 C 应用程序中实现 C 共享库
打包 C 共享库后,您可以从 C 应用程序调用它。可以使用 C 应用程序代码调用共享库中包含的函数。
找到位于
matlabroot\extern\examples\compilersdk\c_cpp\matrix或您的工作文件夹中的matrix.c文件。将该文件复制并粘贴到包含 C 库文件(在 Windows 上为
libmatrix.lib,在 Mac 上为libmatrix.dylib,在 Linux 上为libmatrix.so)的文件夹中。在 MATLAB 命令提示符下,导航到您复制
matrix.c的文件夹。使用
mbuild编译并链接应用程序。mbuild matrix.c libmatrix.<ext>
要在 Linux 或 Mac 系统上运行应用程序,必须先将 MATLAB Runtime 添加到库路径。有关详细信息,请参阅针对部署设置 MATLAB Runtime 路径。
从系统命令提示符运行应用程序。在 Windows 上,将正斜杠替换为反斜杠 (
\)。./matrixThe sum of the matrix with itself is: 2.00 8.00 14.00 4.00 10.00 16.00 6.00 12.00 18.00 The product of the matrix with itself is: 30.00 66.00 102.00 36.00 81.00 126.00 42.00 96.00 150.00 The eigenvalues of the original matrix are: 16.12 -1.12 -0.00
注意
您可能需要在 Linux 或 Mac 系统上为应用程序授予可执行权限。
chmod u+x matrix
另请参阅
compiler.build.cSharedLibrary | mxArray (C)
