Matlab与C/C++混合编程:外部库调用详解

需积分: 43 184 下载量 126 浏览量 更新于2024-08-10 收藏 2.44MB PDF 举报
"该资源是关于在intra-mart框架中进行Matlab与C/C++混合编程的教程,由张亮等人编著,出版于2008年。主要讲解如何调用外部库,包括其架构、创建过程以及使用的变量类型的限制。" 在intra-mart框架中,调用外部库是一个关键功能,它允许用户扩展平台的能力,集成已有的C或C++代码库。这一过程涉及到多个步骤和工具的使用。 3.16.1 概要中提到,调用外部库是通过Java Wrapper类来实现的,这使得在intra-mart的Java环境中能够间接调用C或C++编写的库函数。框架支持这种跨语言的交互,使得开发者能够利用现有资源构建更复杂的系统。 3.16.2 外部库调用的架构是这样的:首先,Function Container中的函数生成Java Wrapper类,这个类是连接Java和C/C++代码的桥梁。然后,通过调用Java Wrapper类的函数,间接执行对应的外部库函数。这里的Java Wrapper类每个函数都对应外部库的一个函数,实现了接口的映射。 在3.16.3章节,详细描述了创建Java Wrapper类和外部库所需的工具和步骤。创建过程中需要JDK,其中的javac.exe用于编译Java代码,javah.exe则生成C语言的头文件,而jni.h是C语言编写库时的标准头文件。此外,还需要C编译器来创建实际的外部库。 3.16.3.2章节提到,在intra-mart框架中,由于JavaScript调用外部库的限制,可用的变量类型有限,主要包括String、Number和Boolean,它们分别对应Java的jstring、jdouble和jboolean类型,进一步映射到C语言的String、double和boolean类型。 创建外部库的步骤如下: 1. 创建Java Wrapper类的.java源文件。 2. 使用javac.exe编译.java文件生成.class字节码。 3. 运行javah.exe生成C语言的头文件 (.h)。 4. 根据生成的头文件编写C语言的库实现 (.c)。 5. 使用C编译器编译.c文件,生成动态链接库 (.dll)。 该教程还提到了文档的变更历史,包括对不同版本中内容的修订和添加,表明这是一个持续更新和完善的技术资料。 这个资源对于理解intra-mart框架中如何使用Matlab和C/C++混合编程来调用外部库是非常有价值的,它详细解释了调用流程、所需工具以及创建步骤,为开发者提供了清晰的指导。