VS配置Opencv原理

Vs2010配置opencv的步驟可以我的這篇blog:

http://blog.csdn.net/lu597203933/article/details/11175811.  配置主要包括4點配置:環境變量的配置;vc++目錄中包含目錄和庫目錄的配置;鏈接器輸入的配置。在介紹這四點配置前,我首先想簡單介紹下.lib文件和.dll文件:

一:.lib文件和.dll文件

(1)lib是編譯時需要的,dll是運行時需要的。

如果要完成源代碼的編譯,有lib就夠了。

如果也使動態連接的程序運行起來,有dll就夠了。

在開發和調試階段,當然最好都有。

(2)一般的動態庫程序有lib文件和dll文件。lib文件是必須在編譯期就連接到應用程序中的,而dll文件是運行期纔會被調用的。如果有dll文件,那麼對應的lib文件一般是一些索引信息,具體的實現在dll文件中。如果只有lib文件,那麼這個lib文件是靜態編譯出來的,索引和實現都在其中。靜態編譯的lib文件有好處:給用戶安裝時就不需要再掛動態庫了。但也有缺點,就是導致應用程序比較大,而且失去了動態庫的靈活性,在版本升級時,同時要發佈新的應用程序才行。

(3)在動態庫的情況下,有兩個文件,一個是引入庫(.LIB)文件,一個是DLL文件,引入庫文件包含被DLL導出的函數的名稱和位置,DLL包含實際的函數和數據,應用程序使用LIB文件鏈接到所需要使用的DLL文件,庫中的函數和數據並不複製到可執行文件中,因此在應用程序的可執行文件中,存放的不是被調用的函數代碼,而是DLL中所要調用的函數的內存地址,這樣當一個或多個應用程序運行是再把程序代碼和被調用的函數代碼鏈接起來,從而節省了內存資源。從上面的說明可以看出,DLL和.LIB文件必須隨應用程序一起發行,否則應用程序將會產生錯誤。

二:配置原理

(1)    vc++目錄下包含目錄的配置

包含目錄配置路徑爲#include所包含的頭文件如cv.h等所在的目錄。這個就不用多解釋了。

(2)    vc++目錄下庫目錄和鏈接器輸入的配置

庫目錄配置的路徑爲.lib文件所在的目錄,這裏你所要配置的.lib就是鏈接器中的輸入的lib文件。這裏的lib文件當然只是索引信息,真正的函數實現是在dll文件中的。這樣當缺失相應的dll文件,在編譯截斷是不會發現任何錯誤的。

(3)    環境變量的配置

環境變量配置路徑是dll文件所在的目錄,這樣當程序運行階段時,使用相應的dll文件就可以通過計算機的環境變量找到相應的文件。

以上是個人總結,如有錯誤,請批評指正。。。

參看的blog:

<1>VS配置openCV方法論:http://blog.csdn.net/honpey/article/details/8474462

<2>lib和dll文件的區別和聯繫:http://www.cnblogs.com/devilmsg/articles/1266336.html

作者:小村長  出處:http://blog.csdn.net/lu597203933 歡迎轉載或分享,但請務必聲明文章出處。 (新浪微博:http://weibo.com/2653613245/profile , 歡迎交流!)

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