MX6 工具链 arm-linux-generic-elf-32bit
名称:imx6-5.12.10
sysroot:/opt/fsl-imx-fb/qt5/sysroots/cortexa9hf-neon-poky-linux-gnueabi
编译器:
GCC-imx6: /opt/fsl-imx-fb/qt5/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-gcc
G++-imx6: /opt/fsl-imx-fb/qt5/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-g++
调试器:
QT
Qt %{Qt:Version} (qt5.12.10) /opt/fsl-imx-fb/qt5.12.10/bin/qmake
Qt %{Qt:Version} for Android armv7 opt/fsl-imx-fb/Qt5.9.5/5.9.5/android_armv7/bin/qmake
Qt %{Qt:Version} GCC 64bit /opt/fsl-imx-fb/Qt5.9.5/5.9.5/gcc_64/bin/qmake
## Ubuntu 20.04
-
SDK 工具链的安装位置 tar -zxf t527-sdk.tar.gz -C /opt
ls /opt/t527-sdk/
aarch64-buildroot-linux-gnu doc include lib64 man opt sbin usr
bin etc lib libexec mkspecs relocate-sdk.sh share
qmake 的安装位置**/opt/t527-sdk/bin/qmake**
sysroot : --sysroot=/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot
- 配置 qmake 编译环境
apt install bear : 用于生成 clangd 使用的 compile_commands.json
#!/bin/bash
# Compile
mkdir build && cd build
/opt/t527-sdk/bin/qmake ../L9128H_3067.pro
bear make -j $(nproc) # generates compile_commands.json
-
vscode 安装clangd , 并在工程目录下设置 .clangd
CompileFlags:
Add:
# 交叉编译器系统目录
- --sysroot=/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot# Qt 头文件路径 - -I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5 - -I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtCore - -I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtGui - -I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtWidgets - -I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtNetwork - -I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtQml - -I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtQuick # Qt 宏定义 - -DQT_CORE_LIB - -DQT_GUI_LIB - -DQT_WIDGETS_LIB - -DQT_NETWORK_LIB - -DQT_QML_LIB - -DQT_QUICK_LIB移除主机系统的 Qt 路径,避免冲突
Remove:
- -I/usr/include/x86_64-linux-gnu/qt5
- -I/usr/include/qt5
在 .vscode/settings 增加 clangd 参数
{
"clangd.arguments": [
// 在后台自动分析文件(基于complie_commands)
"--background-index",
// 标记compelie_commands.json文件的目录位置
"--compile-commands-dir=build",
// 同时开启的任务数量
"-j=12",
// clang-tidy功能
"--clang-tidy",
// 全局补全(会自动补充头文件)
"--all-scopes-completion",
// 详细补全
"--completion-style=detailed",
// 补充头文件
"--header-insertion=iwyu",
// pch优化的位置
"--pch-storage=disk",
]
}
.vscode/c_cpp_properties.json
{
"configurations": [
{
"name": "T527-ARM64",
"includePath": [
"${workspaceFolder}/**",
"/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include",
"/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5",
"/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtCore",
"/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtGui",
"/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtWidgets"
],
"defines": [
"QT_CORE_LIB",
"QT_GUI_LIB",
"QT_WIDGETS_LIB"
],
"compilerPath": "/opt/t527-sdk/bin/aarch64-none-linux-gnu-g++",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "gcc-x64"
}
],
"version": 4
}
.vscode/launch.json
{
"version": "0.2.0",
"configurations": [
{
"name": "ARM64 Debug (T527)",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/app_t527",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "/usr/bin/gdb-multiarch",
"setupCommands": [
{
"description": "Enable pretty-printing",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
.vscode/task.json
{
"version": "2.0.0",
"tasks": [
{
"label": "ARM64 Build (T527-SDK)",
"type": "shell",
"command": "/opt/t527-sdk/bin/aarch64-none-linux-gnu-g++",
"args": [
"-g",
"-std=c++17",
"--sysroot=/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot",
"-I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5",
"-I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtCore",
"-I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtGui",
"-I/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/include/qt5/QtWidgets",
"-DQT_CORE_LIB",
"-DQT_GUI_LIB",
"-DQT_WIDGETS_LIB",
"${workspaceFolder}/main.cpp",
"-o",
"${workspaceFolder}/app_t527",
"-L/opt/t527-sdk/aarch64-buildroot-linux-gnu/sysroot/usr/lib",
"-lQt5Core",
"-lQt5Gui",
"-lQt5Widgets"
],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": ["$gcc"],
"detail": "T527 ARM64 Qt 编译"
}
]
}