---------------------------------------------------------------------------------------------------------------------
歡迎關注 [懶人漫說] 公衆號,分享Java、Android、C/C++ 技術,
包括基礎、自己遇到的問題解決過程。
當然如果關注並留言問題的話,我們力所能及的話會幫你解決並回復喲。我們和你一樣,是正在成長的程序員,我們也會分享自己的成長路上的感想,希望可以和你一起努力成長。
寫該博客的原因:
之前一直搞不明白動態庫的使用步驟 故在此作筆記。
有一個博客我認爲寫得很全面 在這裏推薦一下: http://www.cnblogs.com/skynet/p/3372855.html點擊打開鏈接
配置步驟:
一、把用到的dll和lib文件放到工程目錄下
二、把動態庫的頭文件以及頭文件中包含的的非windows的庫文件的頭文件的目錄(這裏用directory.h代替)記下
三、項目 -> 屬性 -> 配置屬性 -> C/C++ -> 常規 -> 附加包含目錄 ——把directory.h添加上 ——這裏是C/C++項目用到的文件的目錄(非庫文件——其他來源文件) ——這樣在工程中用到的頭文件就能找到了(否則報 No such file ordirectory)
四、項目 -> 屬性 -> 配置屬性 -> 連接器 -> 輸入 ——在此添加dll文件相對應的lib文件的絕對路徑——.lib文件(至於爲什麼dll會對應一個lib 我也不是很清楚 請自行百度)
五、項目 -> 屬性 -> 配置屬性 -> 連接器 -> 常規 -> 附加庫目錄 ——把工程目錄(包含dll和lib的目錄)加上
好了 我的項目到這就能正常編譯了
*注: 僅是個人筆記之用 如有錯誤 還望指出
下面是上面的鏈接裏面解釋的動態庫會生成一個lib的原因 在這借用一下了:
無論是靜態鏈接庫還是動態鏈接庫,最後都有lib文件,那麼兩者區別是什麼呢?其實,兩個是完全不一樣的東西。
StaticLibrary.lib的大小爲190KB,DynamicLibrary.lib的大小爲3KB,靜態庫對應的lib文件叫靜態庫,動態庫對應的lib文件叫【導入庫】。實際上靜態庫本身就包含了實際執行代碼、符號表等等,而對於導入庫而言,其實際的執行代碼位於動態庫中,導入庫只包含了地址符號表等,確保程序找到對應函數的一些基本地址信息。