准备
- 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
…
若想解决 需要配置configure
(未尝试)
-no-iconv
iconv
是一个计算机程序以及一套应用程序编程接口的名称。它的作用是在多种国际编码格式之间进行文本内码的转换。
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
:
再到板子上测试,成功~