準備
- Pallas_Qt_mingw32_SDK
- gcc-linaro-6.2.1-2016.11-i686-mingw32_aarch64-linux-gnu
- 大恆PALLAS系列相機
以上,最好找大恆的技術支持拿。
環境搭建
特別注意:
大恆提供的是文件爲:
Pallas_Qt_mingw32_SDK.tar.xz
gcc-linaro-6.2.1-2016.11-i686-mingw32_aarch64-linux-gnu.tar.xz
我們需要在Windows下,以管理員身份運行7z解壓,否則文件結構可能會被破壞。
QT+交叉編譯環境
若 PC 上已經安裝了 Qt
,則不需要另外安裝,直接 新建構造套件 即可。
環境變量
但在此之前,我們需要先配置以下環境變量:
qmake
make
交叉編譯工具鏈
在系統環境變量 PATH
中添加:
- C:\arm123\bin;
- C:\Pallas_Qt_mingw32_SDK\make\bin;
- C:\Pallas_Qt_mingw32_SDK\qmake\bin;
驗證
構建套件
Qt版本
交叉編譯工具鏈
GDB
Cmake
添加設備:需先接入相機,配好網絡,可以點擊 Test
測試
添加構建套件
測試Qt交叉編譯
新建工程,選用我們新建的構造套件 PASSLA ARM64
,添加測試代碼:
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "test success.";
return a.exec();
}
出現錯誤:
error: Unexpected output from remote process: "Available"
到編譯輸出看一下:
可以發現是部署失敗,我們先不管它,可執行文件已經生成。
通過 ftp
上傳到板子上,再授予權限:
chmod 777 untitled
執行一下:
成功輸出了,但是前面出現 failed
…
這是因爲我用的是 Qt Widgets Application
,若使用 Qt Console Application
則不會出現該問題。
Qt 遠程調試
遠程調試,則開發板上需要 gdbserver
,大恆已經提供並幫我們配置好了。
例如我們需要調試 untitled 程序
。按上文生成可執行文件後,先上傳到相機(開發板)。
然後啓動 gdbserver
gabserver 192.168.10.10:6666 ./untitled
QtCreator
中選擇 調試
-> 開始調試
-> Attach to Running Debug Server...
然後就可以調試了
OPenCV配置
環境變量及路徑
以 SDK
的 DetectBlob
爲例,大恆給我們提供了 Makefile
:
根據 MakeFile
內容,我們需要做兩件事:
Pallas_Qt_mingw32_SDK
在C盤根目錄
下,這下明白爲什麼大恆建議解壓到C盤根目錄了…- 增加環境變量
PALLAS_SDK_PATH
及OPENCV_PATH
原諒我當時想不開裝的 Win7
…配置環境變量實在太不友好。
MakeFile
make
一下:
OPenCV頭文件找不到。打開 MakeFile
文件,發現其並沒有指定 OpenCV相關頭文件位置
:
解決:
上圖 18 行 INCPATH
結尾加上 -I../../../opencv3.2/include
即可。
重新 make
:
再到板子上測試,成功~