mexw32 移植到64位系统产生问题,solved

之前提到了,怎样生成mexw32和mexw64文件

我用来生成32文件的source code没错,生成64位也很顺利,但是运行时crash

心都寒了啊,零下12度的天,心也低沉了

好在一阵狂搜,找到了一些解决方案,

Solution 2:可以用,实验成功

find all integer(kind = 4), and change it to integer(kind = 8)


Solution 1:

Some legacy FORTRAN code use the following syntax to define the MEXFUNCTION:
SUBROUTINE MEXFUNCTION(NLHS, PLHS, NRHS, PRHS)
INTEGER PLHS(*), PRHS(*)
INTEGER NLHS, NRHS
This might compile and execute on a 32-bit platform, however, the recommended syntax is to use MWPOINTER as shown below (for any platform).
This is essential for the MEX file to execute successfully on a 64-bit platform.
SUBROUTINE MEXFUNCTION(NLHS, PLHS, NRHS, PRHS)
MWPOINTER PLHS(*), PRHS(*)
INTEGER NLHS, NRHS

see:http://www.mathworks.cn/support/solutions/en/data/1-6OFX55/index.html?nocookie=true


1不行,使用mwpointer能够根据系统平台自由切换integer*4或是*8,但必须主程序前添加include 'fintrf.h',

该文件位于 matlabroot\extern\include,可是我的程序是自由格式的,这家伙是fixed,没法弄一块去,还是放弃了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值