如何在32位和64位平台上声明指针类型,而不改变MATLAB 7.1 (R14SP3)中的Fortran mex文件中的代码?

6次浏览(最近30天)
我尝试使用MATLAB 7.1 (R14SP3)在64位Linux机器上执行我的Fortran mex文件。我以前在32位Linux机器上成功地编译了这个文件。我的文件使用INTEGER数据类型。
现在我要迁移到64位机器,我需要使用INTEGER*8数据类型。我不是想用INTEGER*8替换所有出现的INTEGER,而是想知道是否有一种方法可以编写与体系结构无关的代码,根据执行mex文件的体系结构使用正确的INTEGER数据类型。

接受的答案

MathWorks支金宝app持团队
这个增强已经被纳入到版本2006a (R2006a)中。对于以前的产品版本,阅读下面的任何可能的解决方案:
如果你的Fortran编译器支持预处理,使用MWP金宝appOINTER宏而不是INTEGER来声明mxArrays和其他MATLAB指针类型。Fortran预处理程序在32位平台上将MWPOINTER转换为INTEGER*4,在64位平台上将MWPOINTER转换为INTEGER*8。
要使用MWPOINTER,你必须在你的Fortran源文件中包含以下行:
包括“fintrf.h”
对于MWPOINTER的使用示例,打开目录$MATLAB\extern\examples(其中$MATLAB是你的机器上的MATLAB根目录,通过输入
matlabroot
在MATLAB命令提示符处。)

更多的答案(0)

下载188bet金宝搏


释放

R14SP1

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!