混合编程c++与Fortran.docx

上传人:b****6 文档编号:7616033 上传时间:2023-01-25 格式:DOCX 页数:5 大小:694.44KB
下载 相关 举报
混合编程c++与Fortran.docx_第1页
第1页 / 共5页
混合编程c++与Fortran.docx_第2页
第2页 / 共5页
混合编程c++与Fortran.docx_第3页
第3页 / 共5页
混合编程c++与Fortran.docx_第4页
第4页 / 共5页
混合编程c++与Fortran.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

混合编程c++与Fortran.docx

《混合编程c++与Fortran.docx》由会员分享,可在线阅读,更多相关《混合编程c++与Fortran.docx(5页珍藏版)》请在冰豆网上搜索。

混合编程c++与Fortran.docx

混合编程c++与Fortran

1.VS2008+INTELfortran.

Fortran为主程序,调用c++函数

2.VS2008的设置

(1)在已有的fortran工程的解决方案中添加新的c++工程:

解决方案可以有好多工程;

但是每个工程只能是单独计算机语言的工程,即fortran用fortran建立工程,c++用c++建立工程。

设置解决方案中,各个工程之间的依赖关系。

(2)混合编程的几种方法:

c++源文件编译为目标文件与fortran链接合成;

c++源文件编译为库文件,然后fortran链接的时候将该库加入。

2.设置runtimelibrary:

Multithreaded;

 

 

而debug模式中,runtimelibrary竟然是:

MultithreadedDLL

而且有时,出错的时候交换Multithread和MultithreadedDLL竟然能链接通过。

 

3.设置项目依赖关系:

项目-》项目依赖项

 

3)链接选项(以c++为静态链接库为例)

(1)构建或改变c++工程为静态链接库,如下图

(2)在主工程(fortran工程),需要设置比较多:

设置linker里面附加库(additionarylibrary)的目录和库名称

linker-》additionayLibrarydirectory设置为:

F:

\LBM_MOVING_INTER2_FLEXIBLE\LBM_MOVING_INTER2_FLEXIBLE\Release(c++编译为静态库,库所在的目录)\

设置附加库的名称:

F:

\LBM_MOVING_INTER2_FLEXIBLE\LBM_MOVING_INTER2_FLEXIBLE\Release\beamcpp.lib

linker-》input-》addtionarydependencies:

F:

\LBM_MOVING_INTER2_FLEXIBLE\LBM_MOVING_INTER2_FLEXIBLE\Release\beamcpp.lib

 

4)源程序c++函数的fortran接口

fortran为主程序,即

programmain

{

implicitnone

int:

:

i,j

doubleprecision,dimension(20):

:

p

.....

callGETBEAMDV(i,j,p...)

}

c++程序中

#include

#include

#include

#include

classmyclass{

...

};

extern"C"

{

voidGETBEAMDV(int*,int*,double*);

}

voidGETBEAMDV(int*MM,int*kk,double*Pld)

{

.....

return;

};

几点注意:

(1)ifort编译后(fortran源程序),其函数名为大写名称前方加底横线:

如“_GETBEAMDV”

(2)VISUALC++编译后(c++源程序),其函数名也为大写名称前方加底横线:

如“_GETBEAMDV”

因此,只需相同名称就可以了,比codeblock简单些!

另外,为了使程序在codeblocks和vs2008一致,可在vs2008中进行设置,包括c++和fortran工程中添加编译和链接选项分别为:

简单在vs2008的fortran工程中添加编译选项:

/names:

lowercase

这样的话只要增加“_”

callgetbeamdv(i,j,p...)!

getbeamdv_((i,j,p...))用于intelfortran编译(编译选项添加/names:

lowercase,具体参见vs2008+ifort)

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1