如何判斷一個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)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章