Как правильно скомпилировать Qt5 для arm64 на Ubuntu 22.04?
Есть хост машина, у нее ось Ubuntu 20.04 x64 И есть целевая машина Raspberry Pi 4 на ней стоит Ubuntu 22.04 x64
Код компилируется на хост машине, а программа разворачивается на целевой через ssh.
Вот инфа о хост машине:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
Address sizes: 43 bits physical, 48 bits virtual
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
Socket(s): 1
NUMA node(s): 1
Vendor ID: AuthenticAMD
CPU family: 23
Model: 32
Model name: AMD Athlon Silver 3050e with Radeon Graphics
Stepping: 1
Frequency boost: enabled
CPU MHz: 946.324
CPU max MHz: 1400,0000
CPU min MHz: 1000,0000
BogoMIPS: 2794.78
Virtualization: AMD-V
L1d cache: 64 KiB
L1i cache: 128 KiB
L2 cache: 1 MiB
L3 cache: 4 MiB
NUMA node0 CPU(s): 0-3
Vulnerability Itlb multihit: Not affected
Vulnerability L1tf: Not affected
Vulnerability Mds: Not affected
Vulnerability Meltdown: Not affected
Vulnerability Mmio stale data: Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled v
ia prctl and seccomp
Vulnerability Spectre v1: Mitigation; usercopy/swapgs barriers and __user
pointer sanitization
Vulnerability Spectre v2: Mitigation; Retpolines, IBPB conditional, STIBP
always-on, RSB filling
Vulnerability Srbds: Not affected
Vulnerability Tsx async abort: Not affected
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtr
r pge mca cmov pat pse36 clflush mmx fxsr sse s
se2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtsc
p lm constant_tsc rep_good nopl nonstop_tsc cpu
id extd_apicid aperfmperf pni pclmulqdq monitor
ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes
xsave avx f16c rdrand lahf_lm cmp_legacy svm ex
tapic cr8_legacy abm sse4a misalignsse 3dnowpre
fetch osvw skinit wdt tce topoext perfctr_core
perfctr_nb bpext perfctr_llc mwaitx cpb hw_psta
te sme ssbd sev ibpb stibp vmmcall fsgsbase bmi
1 avx2 smep bmi2 rdseed adx smap clflushopt sha
_ni xsaveopt xsavec xgetbv1 xsaves clzero irper
f xsaveerptr arat npt lbrv svm_lock nrip_save t
sc_scale vmcb_clean flushbyasid decodeassists p
ausefilter pfthreshold avic v_vmsave_vmload vgi
f overflow_recov succor smca
А вот инфа о целевой машине:
Architecture: aarch64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: ARM
Model name: Cortex-A72
Model: 3
Thread(s) per core: 1
Core(s) per cluster: 4
Socket(s): -
Cluster(s): 1
Stepping: r0p3
CPU max MHz: 1800,0000
CPU min MHz: 600,0000
BogoMIPS: 108.00
Flags: fp asimd evtstrm crc32 cpuid
Caches (sum of all):
L1d: 128 KiB (4 instances)
L1i: 192 KiB (4 instances)
L2: 1 MiB (1 instance)
Vulnerabilities:
Itlb multihit: Not affected
L1tf: Not affected
Mds: Not affected
Meltdown: Not affected
Spec store bypass: Vulnerable
Spectre v1: Mitigation; __user pointer sanitization
Spectre v2: Vulnerable
Srbds: Not affected
Tsx async abort: Not affected
Вопросы:
- Какой кроссплатформенный компилятор наиболее оптимально использовать для этих целей? (https://releases.linaro.org/components/toolchain/binaries/latest-7/)
- Как правильно делать синхронизацию? В большинстве гайдов rsync делается между хостом на Ubuntu и целевой на Raspbian. Какие директории нужно синхронизировать в случае, если обе машины на Ubuntu?
- Как правильно делать конфигурацию перед компиляцией Qt? Какие параметры нужно передавать команде config?
- Еще в Qt 5.12.12 (последней бесплатной LTS) в папке /mkspecs/devices нет Raspberry Pi 4, только вариации linux-rasp-pi3. Какой девайс тогда выбирать, если целевая машина Raspberry Pi 4?