教你如何在Linux下生成opencv靜態庫

OpenCV Linux 騰訊搜搜 技術 丹迪幫比 2017-03-26

由於,opencv這個很關鍵的庫一般做圖形圖像的coder都會用到,很方便功能也全面,但是在linux下的cmake文件中一般默認是生成.so的動態庫,用起來並不是很方便,如果你要寫函數指針,還要知道函數參數類型,所以還是放棄吧。下面小編教你如何生成.a的靜態庫。

首先解壓官網下載的cv包

教你如何在Linux下生成opencv靜態庫

cv解壓包

打開CMakeList

教你如何在Linux下生成opencv靜態庫

CMAKE文件

注意關鍵字搜索,shared,然後在下面幾個地方,把shared換成static.

BUILD_STATIC_LIBS

Built as dynamic libs?:" BUILD_STATIC_LIBS THEN YES ELSE NO

IOS AND BUILD_STATIC_LIBS

地方不多,可能有遺漏,搜搜就好。

然後還沒完,如果正常情況在build文件下sudo make install 還是會有點奇怪的問題的。

會可能由V4L什麼符號錯誤,

先別急,打開CMAKEGUI

教你如何在Linux下生成opencv靜態庫

cmakegui

把WITH_V4L的勾去掉,問題就解決了,然後就可以開心的sudo make install了.

友情提示,因為opencv也用了第三方的庫,如果也想生成它用庫的.a文件,在前面把勾選上就好。

最終結果如下

教你如何在Linux下生成opencv靜態庫

生成的小精靈

它會自動把這些.a或.so文件放到/usr/local/lib 下,頭文件放到/usr/local/include下.記得把這兩個路徑寫到bashrc中,這樣在編譯文件時候就可以省一道功夫了。

小編測試編譯一下一個簡單的cv程序

教你如何在Linux下生成opencv靜態庫

簡單程序

g++ main.cpp -lopencv_videostab -lopencv_video -lopencv_imgproc -lopencv_core -lopencv_highgui

最後成功生成了a.out文件。

教你如何在Linux下生成opencv靜態庫

這樣就成功了。

相關推薦

推薦中...