关于dll和lib(傻乎乎的我 又学到一点)

一直在用visual studio,当然只停留在编一些很简单的小程序,或是从网上down一些成品看看效果的水平上,每次从网上下载下程序编译总是麻烦不断,今天又是在这样的纠结中度过,问题解决后回想,主要问题就在lib,dll上,总结一下解决过程。


今天想看retinex模型的程序,网上下载的一个大程序使用了libpng和fftw的库,我的直观想法就是把他们下载下来,在visual studio的property里include上就好啦。


现实不是这样的,这些库里.h文件include就好了,没错,但是同时LINK里需要添加相应的.lib才能保证程序能运行而不出现unresolved symbol。。。。


然后我的有一个想当然的想法就是去下载.lib, .dll,结果又出现了compile和run使用的是uncompatible library的问题


其实问题在于.lib .dll不应该直接去下载,而是应该用之前下载的libpng和fftw的库编译生成。


下载的fftw库文件夹内有.def文件,参见“http://www.fftw.org/install/windows.html”中 “ Windows Installation Notes” 中的介绍,在visual studio里使用 command prompt命令,用.def生成.dll, .lib

lib /def:libfftw3-3.def
     lib /def:libfftw3f-3.def
     lib /def:libfftw3l-3.def
注意visual studio里原本没有command prompt时,external tools->add , 参数如下,其中arguments里注意后半部分为visual studio的安装目录,我的情况是“F:\Program Files (x86)\Microsoft Visual Studio 11.0\VC/vcvarsall.bat”,目录错误的话命令行中lib命令不存在



libpng库的文件中没有.def文件,但在lpng1612\projects\vstudio里有vstudio.sln文件,根据“http://beeproc.wordpress.com/2012/12/29/building-static-zlib-v1-2-7-with-msvc-2012/”,在release模式下build项目,可以生成相应的.dll和.lib


在需要调用的工程中加入这些文件,即可顺利运行。 已成功,记录在此,以免再犯错误!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值