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

3ビュ(過去30日間)
我正在尝试使用MATLAB 7.1 (R14SP3)在64位Linux机器上执行我的Fortran mexo文件。我以前在32位Linux机器上成功编译了该文件。我的文件使用INTEGER数据类型。
现在我要转移到64位计算机,我将需要使用INTEGER*8数据类型。与其将所有出现的INTEGER替换为INTEGER*8,我想知道是否有一种方法可以编写与体系结构无关的代码,根据所执行的mex文件的体系结构使用正确的INTEGER数据类型。

採用された回答

MathWorks支金宝app援小组
MathWorks支金宝app援小组 2009 年 6 月 27 日
这一增强已被合并到版本2006a (R2006a)中。对于以前的产品版本,请阅读下面的任何可能的解决方案:
如果您的Fortran编译器支持预处理,请使用MW金宝appPOINTER宏而不是INTEGER来声明mxArrays和其他MATLAB指针类型。Fortran预处理器将MWPOINTER在32位平台上转换为INTEGER*4,在64位平台上转换为INTEGER*8。
要使用MWPOINTER,必须在Fortran源文件中包含以下行:
包括“fintrf.h”
对于MWPOINTER的使用示例,在$MATLAB\extern\examples目录下打开任何扩展名为.F的文件(其中$MATLAB是您机器上的MATLAB根目录,通过键入返回
matlabroot
在MATLAB命令提示符。)

その他の回答(0件)

製品


リリス

R14SP1

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

翻译的