没有合适的资源?快使用搜索试试~ 我知道了~
关于Fortran调用C++函数的小结.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 34 浏览量
2022-07-12
02:43:56
上传
评论
收藏 283KB PDF 举报
温馨提示
试读
4页
。。。
资源推荐
资源详情
资源评论
关于 Fortran 调用 C++函数的小结
2017-3-12
背景
工作中遇到了需要在 Fortran 代码中调用 C++提供的函数的情况。
通过在网上查阅资料,总结了实现方法,制作了一个实例。
工具
集成开发环境是 VS2010。由于默认安装模式下的 VS2010 是无法编译调试 Fortran 的,所以
又补充安装了 Intel(R) Virual Fortran 2011(英特尔可视化 Fortran 编译器)。
参考资料分析
本文需要用到 Fortran 与 C/C++的混合编程,Fortran 和 C/C++分别编译各自的功能模块源代
码,得到各自的目标文件(.obj),然后集成链接这些 obj 文件生成一个统一的可执行文件,
实现对对方函数的调用,数据交换通过约定接口来实现
[1]
。
C++代码中函数说明前需要用到 extern 关键字,说明函数可以在本模块或其它模块中使用
[2]
。
extern 与"C"一起连用时,如: extern "C" void fun(int a, int b); 则告诉编译器在编译 fun 这个函
数名时按着 C 的规则去翻译相应的函数名而不是 C++的,C++的规则在翻译这个函数名时会
把 fun 这个名字变得面目全非
[3]
。
要在 Fortran 中调用 C++的函数,意味着 Fortran 项目对 C++项目产生了依赖关系,如果项目
依赖项未设置会导致类似“无法解析的外部符号 _XXX,该符号在函数 _XX 中被引用”的
错误。另外还要保证 Fortran 与 C++项目的运行库设置都是“多线程调试”
[4]
。
实现过程
创建 Fortran 项目
1) 启动 VS2010,新建一个 Fortran 控制台应用程序,名称为 Console1。
2) 在该项目下的 Source Files 下添加一个新文件 Source1.f90。
3) 在 Source1.f90 中写入如下代码:
program main
implicit none
interface
subroutine SUB(a,b)
!DEC$ ATTRIBUTES C,ALIAS:'_sub'::SUB
!DEC$ ATTRIBUTES reference::a,b
资源评论
G11176593
- 粉丝: 6668
- 资源: 3万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功