Fortran Coder

查看: 26140|回复: 26
打印 上一主题 下一主题

[混编] VS2013+Intel Parallel Studio XE 2018 for Fortran与Matlab2016a混合编程问题

[复制链接]

22

帖子

3

主题

0

精华

入门

F 币
90 元
贡献
48 点
跳转到指定楼层
楼主
发表于 2018-7-20 10:55:49 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 MrLIN 于 2018-7-20 10:55 编辑

请教关于matlab与Fortran混合编程问题,初次接触Fortran语言,有一个混合编程的任务需要完成。用matlab的范例程序 yprimefg 先进行了试验,记过在VS中编译显示如下:

对matlab进行设置时候也同样出现了问题,按照网上的方法也没有解决:

请大家多多指点,不胜感激!!!!

微信图片_20180720104841.png (41.34 KB, 下载次数: 469)

VS

VS

微信图片_20180720105502.png (17.22 KB, 下载次数: 516)

matlab

matlab
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

22

帖子

3

主题

0

精华

入门

F 币
90 元
贡献
48 点
27#
 楼主| 发表于 2018-7-25 10:21:17 | 只看该作者
kyra 发表于 2018-7-25 09:13
说明 matlab 没有检测到你安装了被它支持的编译器(中的任何一款)

每个 matlab 版本都有自己支持的编译器 ...

我设置车C++的语言可以正常运行,唯独这个FORTRAN的不可以。。。

259

帖子

0

主题

0

精华

版主

World Analyser

F 币
717 元
贡献
510 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
26#
发表于 2018-7-25 09:13:38 | 只看该作者
说明 matlab 没有检测到你安装了被它支持的编译器(中的任何一款)

每个 matlab 版本都有自己支持的编译器列表,这些列表中也指定了编译器的版本,不匹配的话没法用。
(这样可能导致你的matlab不能调用fortran代码,但fortran调用matlab应该没问题)

22

帖子

3

主题

0

精华

入门

F 币
90 元
贡献
48 点
25#
 楼主| 发表于 2018-7-25 09:05:49 | 只看该作者
kyra 发表于 2018-7-25 08:30
你的图片里用的是 mex -setup 而不是 mex -setup fortran

我试了三种方式:

第一种,先输入mex -setup 再点提示中的mex -setup FORTRAN

第二种,直接输入mex -setup fortran

第三种,直接输入mex -setup FORTRAN(区分下大小写,哈哈)

三种操作最终显示的错误都一样的


微信图片_20180725090321.png (27.95 KB, 下载次数: 388)

微信图片_20180725090321.png

259

帖子

0

主题

0

精华

版主

World Analyser

F 币
717 元
贡献
510 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
24#
发表于 2018-7-25 08:30:14 | 只看该作者
你的图片里用的是 mex -setup 而不是 mex -setup fortran

22

帖子

3

主题

0

精华

入门

F 币
90 元
贡献
48 点
23#
 楼主| 发表于 2018-7-24 21:13:53 | 只看该作者
kyra 发表于 2018-7-24 20:41
现在是缺少主程序和 yprime 函数了。前者需要你自己补充,后者也应该是用户书写的,不是matlab提供的
...

好像是这样的,这是MATLAB里混合编程的范例,我换了个范例,只提示两个错误:
错误        1         error LNK2019: 无法解析的外部符号 MAIN__,该符号在函数 main 中被引用        libifcoremdd.lib(for_main.obj)       
错误        2         fatal error LNK1120: 1 个无法解析的外部命令        x64\Debug\fortran_matlab_test.exe       
如果自己编写mex到这一步是否可以认为成功了呢?


还有个问题请教,matlab里关于混合编程的语言配置问题, 选择mex -setup FORTRAN,出现以下错误该如何处理?



微信图片_20180724211419.png (16.07 KB, 下载次数: 392)

微信图片_20180724211419.png

259

帖子

0

主题

0

精华

版主

World Analyser

F 币
717 元
贡献
510 点

新人勋章美女勋章元老勋章热心勋章规矩勋章管理勋章

QQ
22#
发表于 2018-7-24 20:41:36 | 只看该作者
本帖最后由 kyra 于 2018-7-24 20:49 编辑

现在是缺少主程序和 yprime 函数了。前者需要你自己补充,后者也应该是用户书写的,不是matlab提供的

b64543a98226cffce96f8338b9014a90f703eaf7.jpg (79.71 KB, 下载次数: 370)

b64543a98226cffce96f8338b9014a90f703eaf7.jpg

22

帖子

3

主题

0

精华

入门

F 币
90 元
贡献
48 点
21#
 楼主| 发表于 2018-7-24 20:39:06 | 只看该作者
fcode 发表于 2018-7-24 20:13
从你之前的回答

来看,你的 工程是 32 位的。按以下方法切换为64位

厉害了,果然是,少了很多错误,还剩3个

微信图片_20180724203641.png (16.64 KB, 下载次数: 383)

微信图片_20180724203641.png

2022

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1598 元
贡献
689 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

20#
发表于 2018-7-24 20:13:54 | 只看该作者
从你之前的回答
噢噢噢,抱歉抱歉,非常感谢耐心解答。输出窗口列表如下:
1>------ 已启动全部重新生成:  项目: fortran_matlab_test, 配置: Debug Win32 ------
1>Deleting intermediate files and output files for project 'fortran_matlab_test', configuration 'Debug|Win32'.
1>Compiling with Intel(R) Visual Fortran Compiler 18.0.3.210 [IA-32]...
1>Source1.for

来看,你的 工程是 32 位的。按以下方法切换为64位

22

帖子

3

主题

0

精华

入门

F 币
90 元
贡献
48 点
19#
 楼主| 发表于 2018-7-24 20:10:27 | 只看该作者
fcode 发表于 2018-7-24 19:59
确认你的 matlab 和 fortran工程所配置的位数一致。比如都是32位或都是64位。

如果有其他 lib 文件,比如  ...

两个工程的配置应该没问题吧,我这是64位机器,安装时应该都是按照64位按的,fortran的位数该怎样查看呢?我把所有的lib文件都添加进去了,还是没什么变化。还有没有其他解决办法

微信图片_20180724200821.png (89.46 KB, 下载次数: 299)

微信图片_20180724200821.png
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-11-23 23:12

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表