Fortran Coder

查看: 130|回复: 5
打印 上一主题 下一主题

[编译器] gfortran编译dll失败,望指导,谢谢

[复制链接]

4

帖子

1

主题

0

精华

新人

F 币
21 元
贡献
9 点
跳转到指定楼层
楼主
发表于 2024-5-11 10:10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 x_s_s_1 于 2024-5-11 10:13 编辑

初学者,定向学习,抄代码如下
[Fortran] 纯文本查看 复制代码
subroutine CFOX_add(real1,real2)
!程序作用是根据传入real1,real2得出和
!参数之间用,隔开
!DEC$ ATTRIBUTES DLLEXPORT ::CFOX_add
!上面的语句是编译功能语句,DLL中可以被外界调用的函数都要写上面的语句,
!声明哪些函数可以被外界访问,不然外界无法访问
implicit none
real::real1,real2,sum1
sum1 = real1+real2
return
end subroutine CFOX_add
!编译成dll gfortran -shared -dll -o fdll.dll fdll.f90

CMD执行 gfortran -shared -dll -o fdll.dll fdll.f90
错误提示
f951.exe:warning:unrecognized gcc debugging option: 1

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

4

帖子

1

主题

0

精华

新人

F 币
21 元
贡献
9 点
沙发
 楼主| 发表于 2024-5-11 10:35:02 | 只看该作者
好像找到原因了,-dll 选项是特定于Intel编译器的
先CMD执行gfortran -c fdll.f90
!编译成.o文件
再CMD执行 gfortran -shared -o fdll.dll fdll.o
!编译成dll

1967

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1372 元
贡献
581 点

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

板凳
发表于 2024-5-11 10:40:48 | 只看该作者
gfortran -shared -o fdll.dll fdll.f90
也可以,同时编译链接就行了。

即便你加了 -dll ,gfortran不认识,它提示你 warning:unrecognized gcc debugging option,也没关系。dll 还是生成了的。

4

帖子

1

主题

0

精华

新人

F 币
21 元
贡献
9 点
地板
 楼主| 发表于 2024-5-11 10:54:13 | 只看该作者
fcode 发表于 2024-5-11 10:40
gfortran -shared -o fdll.dll fdll.f90
也可以,同时编译链接就行了。

谢谢您,我试试,再请教一下,我用
CMD  Regsvr32 /s "E:/fortran/lstlinkfor/fdll.dll"注册了这个dll以后,用其它语言调用的时候要怎么链接?我用的语言很小众,vlisp类似VB,(vlax-get-or-create-object "fdll.dll")不成功

1967

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1372 元
贡献
581 点

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

5#
发表于 2024-5-11 11:15:19 | 只看该作者
普通的 dll 不用注册。只有特殊的提供 DllServer 服务(COM,DCOM组件)的DLL才需要注册。
其他语言像常规的dll使用一样就行。没有什么特殊的。

不成功可能是因为依赖的 dll 没有解决。你可以看看 dlllose.w.fcode.cn

4

帖子

1

主题

0

精华

新人

F 币
21 元
贡献
9 点
6#
 楼主| 发表于 2024-5-11 11:16:52 | 只看该作者
fcode 发表于 2024-5-11 11:15
dll 不用注册。
其他语言像常规的dll使用一样就行。没有什么特殊的。

再次感谢,我再研究一下
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-29 19:46

Powered by Tencent X3.4

© 2013-2024 Tencent

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