如何判断一个lib文件是静态库,还是DLL的导入库

我是c++的初学者,最近在GIT上搞了个土耳其人的开源项目,具体是什么项目…就不说了,无关紧要

在项目中,引用了SDL2的h文件,并且提供了lib文件

便宜后,竟然提示,需要SDL2.dll,我就疯狂了,觉得,已经有了lib文件了,应该是直接编译在exe中就可以了啊,天啊,C++的编译到底是几个意思?

第一感觉是,vs的编译选择不正确,开始尝试修改各种编译选项,结果,依旧…

后续,我就开始查了,如何判断一个lib是静态的还是动态的,结果发现了一篇好文
地址:https://blog.csdn.net/beebeeyoung/article/details/81624047

文中提及了,可以使用vs2010提供的工具lib来判断是否为静态的lib文件
路径:C:\Program Files\Microsoft Visual Studio 10.0\VC\bin
命令:lib /list x:\path\xxx.lib

若执行后提示 XXX.obj 则为静态lib
若执行后提示 XXX.dll 则为动态lib(很坑啊,编译后仍然需要dll文件)

但,我在执行的过程中,又碰到了另外一个坑
执行lib的时候,竟然提示缺少mspdb100.dll(又是DLL,为啥c++这么多的DLL)
心想既然是ms开头的,我又安装vs,就应该有,C盘开始搜索这个文件,在vs的安装目录中发现了它
copy过去,运行成功;当然你要是为了以后少坑,可以将如下路径增加到path中去
路径:C:\Program Files \Microsoft Visual Studio 10.0\Common7\IDE

最后,注意,若你的系统是64为系统(现在多半都是),program files后边跟上(x86)

你可能感兴趣的:(c++)