1、opencv其實最開始只有原始碼,也就是sources中的**,sources中有個modules,進入裡面是各個我們平常使用的模組,如下圖。
進入任意乙個模組,比如calib3d,其中有include,標頭檔案,有src,實現標頭檔案定義的類的cpp,src資料夾下面還有乙個main函式,從理論上來說我們可以把calib3d中的標頭檔案和cpp放在乙個vs的專案中,來生成解決方案,也就是做編譯和執行。
但是opencv不像我們這樣子做,opencv要在不同的作業系統上編譯出適合本系統的靜態鏈結庫和動態鏈結庫,之後如果我作為乙個程式設計師,想呼叫calib3d的標頭檔案中的某乙個類,那麼就#include 就可以了。
也就是說,我們沒有必要拿calib3d中的所有cpp和標頭檔案都放在解決方案中,乙個個來編譯,只需要簡單的一行#include呼叫標頭檔案就可以了。
鏈結庫挺方便的,關於為什麼要使用鏈結庫而不是一大堆的cpp和標頭檔案,這個鏈結給出了答案謝謝作者的分享。
在windows系統上,cmake-gui根據cmakelists生成vs的opencv.sln,接著生成所有專案的解決方案,生成解決方案的過程其實也就是編譯和鏈結,生成的靜態鏈結庫是.lib格式,動態鏈結庫是.dll格式。
搞清楚乙個東西的感覺真爽~之後有什麼對於opencv的新認識再來補充了
全面認識APM和ACPI
apm全稱advanced power management,中文名稱高階電源管理,目前最新的apm標準是1.2,它是一種基於bios的系統電源管理方案,它提供了cpu和裝置電源管理並通過裝置工作超時設定來決定何時將裝置轉換到低耗能狀態。1.由於基於apm的bios都有它自己的電源管理方案,使得計算...
對於printf和scanf的新的認識
學過c語言的都知道,我們在編譯預處理指令時引入 include標頭檔案,其中用的最多的兩個函式就是printf 函式和scanf 函式。乙個輸入 乙個輸出函式。但是可能正是因為我們見的太多次,認為它太簡單,反而忽視了一些問題。就比如,我們都知道printf 函式是輸出函式,它可以格式化輸出我們想要的...
print函式的全面認識
輸出列印 數字 print 123 a 100 print a 輸出列印 字串 print 字串123 print 鋤禾日當午 汗滴禾下土 輸出列印 列表 num list 1,2,3,4 print num list 輸出列印 元組 num tuple 1,print num tuple empt...