Fortran Coder

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

[求助] 用DLL封装MODULE的问题

[复制链接]

5

帖子

3

主题

0

精华

入门

F 币
34 元
贡献
19 点
跳转到指定楼层
楼主
发表于 2021-3-8 23:24:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
主要想用MODULE定义全局变量,怎么将该MODULE封装成DLL?
遇到报错的做法:
(1)以moddll名称建立dll,并编译,在debug找到并copy编译得到的moddll.mod和moddll.dll
module modDLL
implicit none
real*8 a
end module modDLL


(2)建立project,编译成功
program main
implicit none
real*8 a
a=1.d0
end


(3)将moddll.mod和moddll.dll放入project的debug中,并在main程序中use模块
program main
use moddll           ! 使用模块
implicit none
real*8 a
a=1.d0
end


(4)后编译,出现报错:Error: The attributes of this name conflict with those made accessible by a USE statement.   [A]



(5)去掉real*8 a,再编译,报错1:error LNK2001: unresolved external symbol _MODDLL_mp_A。报错2:fatal error LNK1120: 1 unresolved externals
program main
use moddll
implicit none
a=1.d0
end



报错1和报错2应该都归由报错1,即主要的问题是:unresolved external symbol _MODDLL_mp_A。


针对这个问题,请各位大牛不吝赐教...


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

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

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

沙发
发表于 2021-3-9 08:41:13 | 只看该作者
你忘了加入 moddll.lib 导入库哟

5

帖子

3

主题

0

精华

入门

F 币
34 元
贡献
19 点
板凳
 楼主| 发表于 2021-3-9 09:01:04 | 只看该作者
fcode 发表于 2021-3-9 08:41
你忘了加入 moddll.lib 导入库哟

在这个module代码例子里,编译后没有生成.lib文件,所以没添加, ??

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

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

地板
发表于 2021-3-9 09:20:48 | 只看该作者
那应该是你创建错了工程类型,要选DLL类型的工程去创建

5

帖子

3

主题

0

精华

入门

F 币
34 元
贡献
19 点
5#
 楼主| 发表于 2021-3-9 13:52:47 | 只看该作者
fcode 发表于 2021-3-9 09:20
那应该是你创建错了工程类型,要选DLL类型的工程去创建

是选的DLL类型工程,好像因为MODULE只是定义了变量,里面没有函数,也没有定义!DEC$,所以没生成.lib。可能这个例子把我要解决的问题扯远了。请问:怎么将MODULE封装成DLL,保留MODULE的功能?
比如这样一个module,在use时变量a和func都是定义过的:
module modDLL
implicit none
real*8 a
contains
subroutine fun1
end subroutine fun1
end module modDLL

2033

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1641 元
贡献
709 点

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

6#
发表于 2021-3-9 15:04:26 | 只看该作者
试试加
!DEC$ ATTRIBUTES DLLEXPORT :: a
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-12-26 00:10

Powered by Tencent X3.4

© 2013-2024 Tencent

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