QT发展了这么多年,迭代了数百个版本,不同版本不一定能很好的兼容,所以我们需要先确定SDK里的qt库版本。我们先打开ssh工具连接到开发板上,然后运行以下命令
ls /usr/lib/libQt*Wi*
可以看到,命令行有输出,也可以确定QT的版本就是5.15
确认了版本之后,就好办了,我们去qtbase仓库,拉取5.15版本的示范代码。使用以下命令拉取仓库
git clone https://github.com/qt/qtbase -b 5.15 --depth=1
源码拉取之后,就可以用VSCode打开源码目录查看了。
然后我们用VSCode打开这个目录examples/widgets/widgets/calculator
QT官方已经支持使用CMake进行编译了,我们只需要在目录里新建一个CMakeLists.txt文件,并将文件内容修改成以下内容即可。
cmake_minimum_required(VERSION 3.1.0)
project(calculator VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_C_COMPILER "/path/to/aarch64-oe-linux-gcc")
set(CMAKE_CXX_COMPILER "/path/to/aarch64-oe-linux-gnu-g++")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
set(CMAKE_AUTOUIC ON)
if(CMAKE_VERSION VERSION_LESS "3.7.0")
set(CMAKE_INCLUDE_CURRENT_DIR ON)
endif()
find_package(Qt5 COMPONENTS Widgets REQUIRED)
add_executable(calculator
button.cpp
calculator.cpp
main.cpp
)
target_link_libraries(calculator Qt5::Widgets)
由于开发板上没有docker,部署qt的编译环境太麻烦了,我们选择交叉编译,首先得确认以下rootfs用的glibc和编译器版本
运行命令后,可以看到,使用的是11.3版本的编译器。
接下来,我们只需要在电脑上使用docker拉取qt编译镜像,部署好工具链就可以了。
使用以下命令拉取docker,(工具链我已经部署好了)
docker run -it -v /opt:/opt --name qt fstlx/qt5
然后在工程目录里运行,就可以顺利编译了
mkdir build && cd build
cmake ../ && make -j8
编译完成后,我们把程序复制到开发板上运行,就可以看到qt的计算器demo运行起来了。
更多回帖