QNX交叉编译

参考文献

参考1
参考2
参考3指定gcc540
参考4手册

QNX交叉编译环境

![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传](https://img-home.csdnimg.cn/images/20230724024159.png?origin_url=https%3A%2F%2Fimgblog.csdnimg.cn%2F7430212ae8f543248df169a446f1cb0b.png%23pic_center%3D60x30&pos_id=img-gQiQRdfl169a446f1cb0b.png5
host,PC主机
target,装有QNX的目标

寻找qcc.exe编译器

在这里插入图片描述在这里插入图片描述

在windows下的交叉编译工具CMAKE_C_COMPILER在路径${COMPILER_BIN_PATH}

= = >${QNX_HOST}/usr/bin/qcc.exe【编译器指定为qcc】

交叉编译手册建议用qcc调用gcc(功能qcc > q++,当然直接用gcc也行),那么就是设置c编译器目标为arch【gcc/5.4.0,gcc_ntoaarch64le有看文章这么写的,应该只是为了找到conf文件,配置qcc实际调用的编译器】
即在arch这个目录下,找目标配置文件;编译器是从目标推断出来的。

= = >${QNX_HOST}/etc/qcc/gcc/5.4.0/gcc_ntoaarch64le.conf打开conf文件:
ar=$(QNX_HOST)/usr/bin/aarch64-unknown-nto-qnx7.0.0-ar
as=$(QNX_HOST)/usr/bin/aarch64-unknown-nto-qnx7.0.0-as
ld=$(QNX_HOST)/usr/bin/aarch64-unknown-nto-qnx7.0.0-ld
lto_cc=$(QNX_HOST)/usr/bin/aarch64-unknown-nto-qnx7.0.0-gcc-5.4.0
其中lto_cc为使用的gcc编译器
在这里插入图片描述
${QNX_TARGET}这个路径里面都是一些文件,我们这里就是为了添加一些文件

编译环境

一般用make,下载个mingw,再export一下make编译器环境就可以了

  • 设置编译器编译模式:
    set( CMAKE_BUILD_TYPE “Debug”)
  • 设置编译器
    两句会拼接在一起
    set(CMAKE_C_FLAGS_INIT “-Wall -march=armv8-a+crc -D_GLIBCXX_USE_C99=1”)
    set(CMAKE_C_FLAGS_RELEASE “-O3 -ffast-math -D_GLIBCXX_USE_C99=1”)
  • 编译参数,如图为sh脚本配置的cmake规则
    cmake规则设置有两种,一种是cmakeliset,一种是脚本里给cmake编译器添加规则.camke
    • 编译设置覆盖规则:顶层cmakelist > sh脚本给cmake添加的 .cmake设置 > 子cmakelist
    • cmake -D 传参给.cmake
    • 已经export到环境变量后,就不需要-D做cmake编译选项了

在这里插入图片描述