QNX交叉编译
参考文献
QNX交叉编译环境
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编译选项了