• 8047阅读
  • 8回复

Qt与Fortran的混合编程 [复制链接]

上一主题 下一主题
离线freshmanzkj
 
只看楼主 倒序阅读 楼主  发表于: 2009-08-03
我需要用Qt来做界面,调用Fortran写的dll,不知道可不可以?
谢谢!
离线jlin
只看该作者 1楼 发表于: 2009-08-03
可以,我们公司以前就这么干的,如果没记错的话好像只有absoft支持。
离线freshmanzkj
只看该作者 2楼 发表于: 2009-08-03
引用第1楼jlin于2009-08-03 14:16发表的  :
可以,我们公司以前就这么干的,如果没记错的话好像只有absoft支持。


只有这一种编译器支持吗?
一般的还不行?
离线river4321

只看该作者 3楼 发表于: 2009-08-03
要在windows下的话肯定是支持dll的啊,就是需要查查资料,定义好c跟fortran的接口。我们有专业软件是在linux下的专业软件是用qt做个界面,然后调用perl脚本,脚本里面直接执行fortran编译好的可执行程序。
离线freshmanzkj
只看该作者 4楼 发表于: 2009-08-03
引用第3楼river4321于2009-08-03 16:00发表的  :
要在windows下的话肯定是支持dll的啊,就是需要查查资料,定义好c跟fortran的接口。我们有专业软件是在linux下的专业软件是用qt做个界面,然后调用perl脚本,脚本里面直接执行fortran编译好的可执行程序。


也就是说,qt使用dll会丧失跨平台的特性?是吗?
离线river4321

只看该作者 5楼 发表于: 2009-08-03
你这问题说的,我不是那个意思,你用vc编译一个dll能拿到linux下用?linux下面的库是lib或者so,要怎么在linux下调用那些库还是得仔细研究下的,gcc应该肯定可以混编c和fortran的
离线dbzhang800

只看该作者 6楼 发表于: 2009-08-03
引用第4楼freshmanzkj于2009-08-03 16:27发表的  :
也就是说,qt使用dll会丧失跨平台的特性?是吗?


只要你在linux下有对应dll的so,在mac下也有对应dll的库,在其它平台下也有,就不会丧失
离线freshmanzkj
只看该作者 7楼 发表于: 2009-08-03
感谢上面三位的解释。
我用qt的原因是因为本专业的老师说,他用了7、8年研究mfc,但是mfc的移植性太差。很多精力和时间都浪费掉了。他建议我们一开始就用Qt。
我的专业需要处理很多数据,从这个角度,fortran是不错的,而且也有不少现成的代码。但是现在必须要有好的界面,还最好能跨平台使用。
不知道大家有没有什么好的建议?
谢谢!
离线foxyz

只看该作者 8楼 发表于: 2009-08-04
这个其实跟Qt没关系!

也就是C++和fortran的混合编程。我经常性在做。
我们这有些核心代码是fortran的,大多数时候是Fortran需要调用C++的代码。也有C++调用Fortran的代码。
绝大多数编译器也都支持吧,我想。我使用的是sun solaris平台,用过sunstudio,也用过gcc之类的。反正都能编译。
其实,主要是之间的接口得处理好。Fortran编译出来的变量,函数参数等等同C++是不一样的。举个例子:
你写了一个C++类给Fortran调用,如果Fortran里你的参数有const char* 那么在C++函数参数中你还得加上该string的长度参数
快速回复
限100 字节
 
上一个 下一个