0. 序言
- PC操作系統:Ubuntu 16.04
- OpenCv版本:4.0
- 交叉工具鏈:arm-linux-gnueabihf,gcc version 5.4.0
- 目標平台:arm
- 編譯時間:20181224
- 建議新手先看交叉編譯的這篇文章:https://www.jianshu.com/p/0fcdce428d8f
1. 下載C++版本Eclipse
下載地址:https://www.eclipse.org/downloads/packages/ 選擇Linux 64位
2. 創建C++Project
-
步驟1:File-New-Project..-C++Project-Next-輸入Project name-Next-輸入Author-Next:
-
步驟2:默認Debug和Release:
- 步驟3:輸入交叉編譯命令的前綴和交叉編譯所在的路徑並點擊Finish:
說明:這里看不懂的,建議先看交叉編譯的文章:https://www.jianshu.com/p/0fcdce428d8f -
目錄結構:
3. 編寫C++代碼
- 把Exam.cpp的代碼替換為以下代碼並保存:
1 #include<opencv2/core.hpp> 2 #include<opencv2/imgcodecs.hpp> 3 #include<opencv2/imgproc.hpp> 4 using namespace cv; 5 int main(void) 6 { 7 Mat pic; 8 pic=imread("gaoyuanyuan.jpg"); 9 Mat gray; 10 cvtColor(pic,gray,COLOR_BGR2GRAY); 11 imwrite("gray.png",gray); 12 return 0; 13 }
注意:這里一定要執行保存的操作。

4. 添加頭文件的路徑
-
右擊項目Exam,選擇Properties並設置如圖選項,然后點擊Apply And Closed。
說明:
① /usr/local/arm/opencv-arm/ 是交叉編譯執行make install后存放可執行文件的目錄,也就是CMAKE_INSTALL_PREFIX對應的目錄
② /usr/local/arm/opencv-arm/include/opencv4/ 對應Exam.cpp的代碼"#include<opencv2/core.hpp>"
,因為我的opencv4的下一級目錄是opencv2,opencv2里面存放的是頭文件。
5. 添加庫依賴
-
右擊項目Exam,選擇Properties並設置如圖選項,然后點擊Apply And Closed。
注意:Libraries是手寫的,它會自動拼接lib和so字符找到指定的依賴。而path則是上上個圖展示的存放so文件的目錄的路徑。
6. 添加C++11新特性
-
Project->Properties->C/C++ Build->Settings->GCC G++ Compiler->Miscellaneous->Other flags 將-c -fmessage-length=0 改為 -c -fmessage-length=0 -std=c++11
image.png
7. 項目Clean然后Build
-
Clean 是為了防止你中途沒有配置完Properties就Build項目:
說明:Building file是原始我們的cpp文件,Building target指的是編譯cpp文件生成的可執行文件。
8. 導出可執行文件和so文件並執行
-
Exam可執行文件存放在生成的Debug目錄下:
-
so文件就是我們剛剛指定的libraries依賴的path路徑下的so文件:
- 復制Exam可執行文件以及Exam.cpp程序所需的一張圖片到arm平台的一個目錄下,這里用到的圖片名稱為gaoyuanyuan.jpg
- 復制so文件到arm平台的/lib文件夾下。
- 進入Exam可執行文件和圖片所在的目錄,執行命令,就會生成一張gray.png圖片:
./Exam

作者:付凱強
鏈接: https://www.jianshu.com/p/f515357e1539
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。