QT Cross Compile
1. 建立git仓库进行跟踪¶
因为在编译的时候会对QT 进行部分的代码修改,建立仓库可以很好的跟踪修改记录
.gitignore 会把一些不需要的中间文件不进行跟踪
git init
git add *
vim .gitignore
git add .gitignore
git commit -m "init"
cat .gitignore
*.a
*.asn1.[ch]
*.bin
*.bz2
*.dwo
*.elf
*.gcno
*.gz
*.i
*.ko
*.lex.c
*.ll
*.lst
*.lz4
*.lzma
*.lzo
*.o
*.o.*
*.s
*.so
*.so.dbg
2. 配置编译工具链¶
工具链的配置建议使用qt提供的qmake机制进行配置,配置文件在mkspecs/qws目录下,通过两个文件完成配置
cd mkspecs/qws/
cp -r linux-arm-gnueabi-g++ linux-riscv-gnueabi-g++
cd linux-riscv-gnu-g++/
2.1. qplatformdefs.h¶
- QT 代码本身兼容32位和64位,因此对于64位CPU,不需要进行过多的设置
- qplatformdefs进行一些基础的数据变量的定义,如type,ipc等,和linux平台的关联性更强,和arm riscv 的关联性没有
cat qplatformdefs.h
#include "../../linux-g++-64/qplatformdefs.h"
cat ../../linux-g++-64/qplatformdefs.h
#include "../linux-g++/qplatformdefs.h"
2.2. qmake.conf¶
- qmake 配置了交叉编译的工具链信息,是交叉编译的主要
- qmake 并没有指定工具链的路径,因此需要编译前把路径手工加入到PATH环境变量
- export PATH=/xxx/d211/bin/:$PATH