VS2010調用開源庫是開發中經常遇到的事情,但是新手最煩的一件事情就是開源庫的include頭文件和lib文件還有.dll文件如何設置,有的時候沒弄明白條理或者存放位置太亂,當把工程文件拷貝到其他人或者更換目錄時要麼編譯不通過要麼連接不通過,都通過了還很可能由於dll沒設置好導致運行不起來。不像Linux那樣在Makefile文件裏設置一下就好。下面將詳細講解開源庫的VS使用。
首先介紹vs能夠使用到開源庫的文件,開源庫的源碼拿過來build後一般會build出三個VS能夠使用到的東西
1.include頭文件:vs編程時需要調用開源庫中函數或者結構的(只是頭文件,沒有.c文件的實現,因爲函數實現都在.lib文件裏了,連接時候自動連接的)
2.lib文件:就是1所說的編譯連接時候要找的程序入口,靜態庫
3.bin中的.dll文件:動態庫,是所寫的可執行程序運行時所需要的動態庫
vs調用開源庫時候能夠使用到的就只有上面說的這三點
OK,知道這個規則之後下面看一下上面三點應該怎麼配置(與上面三點對應)
1.include:所需的頭文件在vs中右擊項目解決方案---屬性---vc++目錄----包含目錄:中需要填入的就是include文件夾中 的.h頭文件的地址(點擊編輯--新建---降地址複製進去即可)
2.lib: 在右擊項目解決方案---屬性---VC++目錄----庫目錄裏跟1一樣的方法把lib文件地址複製進去
還需要在右擊項目解決方案---屬性---鏈接器---輸入----附加依賴項裏添加所使用的庫名字,不知道的話就把全 部的庫名字都放進去
3.上面說了.dll是動態庫文件,也就是程序在運行的時候動態加載的函數,所以說是運行程序時候windows提供給的,所以說他的配置當然就是配置win了
Linux中是添加搜索路徑,win裏是設置環境變量:右擊我的電腦---屬性---高級環境設置----環境變量----找到PATH---點擊編輯----在以前的路徑後面添加分號隔開然後再添加上所使用的dll路徑
只要遵循這三部,一個項目中不管會用到多少個開源庫都是條理很簡單的事情,當然要把每個庫所需的上面三點目錄放好了,不要將全部庫的東西都放到一起,到時候弄得亂的一B,本人閒亂
下面說個例子:
本例用到了四個開源庫:live555用來接收流媒體數據;ffmpeg用來解碼視頻;sdl用來顯示視頻;opencv用來處理視頻
首先將四個開源庫放到以下目錄下
每個目錄下包括自己的bin、lib、include文件夾
1.右擊自己vs工程---點擊屬性---vc++目錄---包含目錄---編輯---分別添加以下目錄
//opencv的目錄
H:\vs2010\opencv\opencvIncludeLib\include\opencv2
H:\vs2010\opencv\opencvIncludeLib\include\opencv
H:\vs2010\opencv\opencvIncludeLib\include
//ffmpeg的目錄
H:\vs2010\FFmpeg\FFmpegIcludeLib\local\include
live555的目錄
H:\vs2010\live555\live555IcludeLib\include
//sdl的目錄
H:\vs2010\SDL\SDLIncludeLib\Include
2.庫目錄
//sdl的lib目錄
H:\vs2010\SDL\SDLIncludeLib\Lib
//opencv的目錄
H:\vs2010\opencv\opencvIncludeLib\lib
ffmpeg的目錄
H:\vs2010\FFmpeg\FFmpegIcludeLib\local\lib
live555的目錄
H:\vs2010\live555\live555IcludeLib\lib
3.點擊鏈接庫---輸入---附加依賴項---編輯
輸入所用到的lib庫名字
avcodec.lib
avformat.lib
avutil.lib
avdevice.lib
avfilter.lib
postproc.lib
swresample.lib
swscale.lib
SDL2.lib
BasicUsageEnvironment.lib
groupsock.lib
liveMedia.lib
UsageEnvironment.lib
WS2_32.Lib
opencv_imgproc249d.lib
opencv_calib3d249d.lib
opencv_contrib249d.lib
opencv_core249d.lib
opencv_features2d249d.lib
opencv_flann249d.lib
opencv_gpu249d.lib
opencv_highgui249d.lib
opencv_legacy249d.lib
opencv_ml249d.lib
opencv_nonfree249d.lib
opencv_objdetect249d.lib
opencv_ocl249d.lib
opencv_photo249d.lib
opencv_stitching249d.lib
opencv_superres249d.lib
opencv_ts249d.lib
opencv_video249d.lib
opencv_videostab249d.lib
4.修改win的環境變量
右擊我的電腦---屬性---高級環境設置----環境變量----找到PATH---點擊編輯----在後面添加
H:\vs2010\live555\live555IcludeLib\bin;
H:\vs2010\FFmpeg\FFmpegIcludeLib\local\bin;
H:\vs2010\opencv\opencvIncludeLib\bin;
H:\vs2010\SDL\SDLIncludeLib\bin
四個庫的bin目錄
ok,經過上面四步後所有配置已經完成,現在你的程序編譯連接運行都是沒有問題的了
以後更改目錄時候只要查看上面四步是否設置的正確就好了
原文地址:http://blog.csdn.net/zhangjikuan/article/details/40405567