由於,opencv這個很關鍵的庫一般做圖形圖像的coder都會用到,很方便功能也全面,但是在linux下的cmake文件中一般默認是生成.so的動態庫,用起來並不是很方便,如果你要寫函數指針,還要知道函數參數類型,所以還是放棄吧。下面小編教你如何生成.a的靜態庫。
首先解壓官網下載的cv包
打開CMakeList
注意關鍵字搜索,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
把WITH_V4L的勾去掉,問題就解決了,然後就可以開心的sudo make install了.
友情提示,因為opencv也用了第三方的庫,如果也想生成它用庫的.a文件,在前面把勾選上就好。
最終結果如下
它會自動把這些.a或.so文件放到/usr/local/lib 下,頭文件放到/usr/local/include下.記得把這兩個路徑寫到bashrc中,這樣在編譯文件時候就可以省一道功夫了。
小編測試編譯一下一個簡單的cv程序
g++ main.cpp -lopencv_videostab -lopencv_video -lopencv_imgproc -lopencv_core -lopencv_highgui
最後成功生成了a.out文件。
相關推薦
'私人整理82道linux下c-c++語法知識點歸納和總結'
"喜歡的話可以收藏轉發加關注1、c/c++申請動態內存在c++中,申請動態內存是使用new和delete,這兩個關鍵字實際上是運算符,並不是函數。而在c中,申請動態內存則是使用malloc和free,這兩個函數是c的標準庫函數,使用它們必須包含stdlib.h,才能編譯通過...
'如何用 Linux 命令行發電子郵件'
"Linux 提供了幾個可以讓你通過終端發送電子郵件的命令,下面來展示一些有趣的方法。-- Sandra Henry-stocker(作者)Linux 可以用多種方式通過命令行發送電子郵件。有一些方法十分簡單,有一些相對會複雜一些,不過仍舊提供了很多有用的特性。選擇哪一種方...
'Linux下的終端設備說明:tty'
"在Linux下,終端是一種字符型的設備,終端設備多種類型,統一使用 tty 作為終端設備的簡稱。tty一詞源於Teletypes,或者teletypewriters,原來指的是電傳打字機,通過串行線用打印機鍵盤發送信息的東西,後來被鍵盤與顯示器取代,所以現在叫終端。終端特...
'如何在 Linux 中查找服務的端口號'
"由於某些原因,你可能經常需要查找端口名稱和端口號。-- Sk(作者)由於某些原因,你可能經常需要查找端口名稱和端口號。如果是這樣,你很幸運。今天,在這個簡短的教程中,我們將看到在 Linux 系統中最簡單、最快捷的查找服務端口號的方法。可能有很多方法可以做到,但我目前只知...
'如何在 Linux 中配置 sudo 訪問權限'
"Linux 系統中 root 用戶擁有 Linux 中全部控制權力。Linux 系統中 root 是擁有最高權力的用戶,可以在系統中實施任意的行為。-- Magesh MaruthamuthuLinux 系統中 root 用戶擁有 Linux 中全部控制權力。Linux ...
如何在 Ubuntu 和其他 Linux 發行版上使用 7Zip
不能在 Linux 中提取 .7z 文件?學習如何在 Ubuntu 和其他 Linux 發行版中安裝和使用 7zip。-- Abhishek Prakas...
推薦中...