主题:[讨论]关于动态连接库的问题
mangreat
[专家分:0] 发布于 2010-11-10 12:31:00
各位大侠,我编了一个子程序:
SUBROUTINE SUB()
!DEC$ ATTRIBUTES DLLEXPORT :: SUB
implicit none
write(*,*)'This is a subroutine.'
END
在用CVF编译时,project类型为动态连接库,用Build编译时,只得到DLL型文件,没有LIB文件.不知道为什么. 请大家分析分析,这是为什么.谢谢了.
回复列表 (共5个回复)
沙发
jstzhurj [专家分:4680] 发布于 2010-11-10 13:08:00
lib是静态库呀,到底要静态还是动态?
板凳
dongyuanxun [专家分:7180] 发布于 2010-11-10 13:24:00
[quote]
lib是静态库呀,到底要静态还是动态?[/quote]
lz问的是dll的导出库lib
有dll和def可以自己生成
3 楼
mangreat [专家分:0] 发布于 2010-11-10 13:52:00
2楼的大侠,请问怎么由dll和def生成动态连接库用的LIB呢? 谢谢了.
4 楼
dongyuanxun [专家分:7180] 发布于 2010-11-10 14:09:00
[quote]
2楼的大侠,请问怎么由dll和def生成动态连接库用的LIB呢? 谢谢了.[/quote]
进入VS命令行
lib /machine:x86 /def:a.def /out:a.lib
5 楼
mangreat [专家分:0] 发布于 2010-11-11 09:50:00
[size=3]谢谢,2楼的大侠.昨天,我又检查了一下,发现了问题所在.问题的分析,解决过程具体如下:
我提出的问题:在用CVF编译时,project类型为动态连接库,用Build编译时,只得到DLL型文件,没有LIB文件,是我用笔记本电脑编译时遇到的,在使用台式机编译时则没有.起初,我以为是版本不同,导致结果不同.后来发现不是.
原来,笔记本上使用的程序有些错误:把"!DEC$ ATTRIBUTES DLLEXPORT :: SUB
"中ATTRIBUTE之后的字母"s"漏了.更正之后,重新编译,两个类型的文件就都有了.
2楼的大侠提到,"进入VS命令行",能否解释一下,什么是VS? 谢谢.
[/size]
我来回复