QNX7.1 交叉编译开源库

1.下载QNX7.1 SDK并解压

ITL:~/work/tiqnx710$ ls -l
总用量 16
drwxrwxr-x 4 xxx4096 1月 28 13:38 host
-rwxrwxr-x 1 xxx 972 1月 28 13:38 qnxsdp-env.bat
-rwxrwxr-x 1 xxx 1676 1月 28 13:38 qnxsdp-env.sh
drwxrwxr-x 3 xxx 4096 1月 28 13:38 target
xxxITL:~/work/tiqnx710$

2.编译protobuf-c-test
cd protobuf-c-test
mkdir out
cd …
sudo apt install autoconf libtool
source …/…/tiqnx710/qnxsdp-env.sh
./autogen.sh
在这里插入图片描述
make -j8
make install
在这里插入图片描述
zlog编译类型步骤:
zlog
git clone http://xxxx/zlog.git
cd zlog
git checkout tag-1.2.15
./autogen.sh
./configure --prefix=/home/xxxx/zlog/out --host=aarch64-unknown-nto-qnx CC=aarch64-unknown-nto-qnx7.1.0-gcc CFLAGS=‘-D_QNX_SOURCE -D__linux__’
make -j1
make install
zlog 可能遇到一个编译错误:
“CE -D__linux__ -c event.c -fPIC -shared -DPIC -o .libs/libzlog_la-event.o
event.c:23:10: fatal error: sys/syscall.h: No such file or directory
#include <sys/syscall.h>
^~~~~~~~~~~~~~~
compilation terminated.
Makefile:536: recipe for target ‘libzlog_la-event.lo’ failed

解决方法:
“diff --git a/src/event.c b/src/event.c
index ec70b32…7d46cdf 100644
— a/src/event.c
+++ b/src/event.c
@@ -20,7 +20,7 @@
#include <sys/time.h>

#include <sys/types.h>
-#include <sys/syscall.h>
+//#include <sys/syscall.h>

#include “zc_defs.h”
#include “event.h”
@@ -91,7 +91,8 @@ zlog_event_t *zlog_event_new(int time_cache_count)
a_event->tid_hex_str_len = sprintf(a_event->tid_hex_str, “%x”, (unsigned int)a_event->tid);

#ifdef linux

  •   a_event->ktid = syscall(SYS_gettid);
    
  •   //a_event->ktid = syscall(SYS_gettid);
    
  •   a_event->ktid = gettid();//modify by xx
    


修改即可编译通过
在这里插入图片描述

1.json-c 交叉编译
cd json-c
mkdir out
source …/…/tiqnx710/qnxsdp-env.sh
cmake -DCMAKE_SYSTEM_NAME=“QNX” -DCMAKE_SYSTEM_PROCESSOR=“aarch64” -DCMAKE_CXX_COMPILER_ID=“GNU”
-DCMAKE_C_COMPILER=“aarch64-unknown-nto-qnx7.1.0-gcc”
-DCMAKE_CXX_COMPILER=“aarch64-unknown-nto-qnx7.1.0-g++”
-DCMAKE_BUILD_TYPE=“Debug”
-DCMAKE_FIND_ROOT_PATH=“/home/xxx/tiqnx710/target/qnx7”
-DCMAKE_INSTALL_PREFIX=/home/xxxx/json-c/out
-DCMAKE_PREFIX_PATH=/home/xxxx/json-c/out
make -j8
make install
2.查看编译产物
在这里插入图片描述
libzip交叉编译类似,按照如下步骤即可:
libzip
git clone http://xxxx/libzip.git
cd libzip
source /homexxxx/tiqnx710/qnxsdp-env.sh
cmake -DCMAKE_SYSTEM_NAME=“QNX” -DCMAKE_SYSTEM_PROCESSOR=“aarch64” -DCMAKE_C_FLAGS=“-fPIC -fvisibility=hidden” -DCMAKE_CXX_COMPILER_ID=“GNU” -DCMAKE_C_COMPILER=“aarch64-unknown-nto-qnx7.1.0-gcc” -DCMAKE_CXX_COMPILER=“aarch64-unknown-nto-qnx7.1.0-g++” -DCMAKE_BUILD_TYPE=“Debug” -DCMAKE_FIND_ROOT_PATH=“/xxxx/qnx710/tiqnx710/target/qnx7/aarch64le” -DCMAKE_INSTALL_PREFIX=/home/xxxlibzip/out -DCMAKE_PREFIX_PATH=/home/xxxx/libzip/out
make -j1
make install

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 在进行QNX(一种实时操作系统)和Windows之间的交叉编译时,我们需要使用特定的编译工具和开发环境来确保代码可以在目标平台上正确编译和运行。 QNX提供了针对Windows平台的交叉编译工具链,例如QNX Momentics IDE。这个IDE集成了编译器、调试器和其他开发工具,使得在Windows下进行QNX的交叉编译变得更加方便。 首先,我们需要安装QNX Momentics IDE。安装完成后,我们可以创建一个新的QNX项目,并配置好编译器和目标平台信息。QNX Momentics IDE提供了丰富的工具和选项,可以根据项目需求来配置编译参数、链接和环境变量等。我们可以在Windows上编写代码,并在QNX Momentics IDE中进行编译和调试。 在进行交叉编译时,我们需要考虑一个重要的问题是目标平台的架构差异。QNX通常运行在ARM、x86等不同的处理器架构上,而Windows通常运行在x86或x86_64架构上。因此,在编译时我们需要确保代码能够正确地针对目标平台进行优化和生成可执行文件。 为了确保交叉编译顺利进行,我们需要在QNX和Windows之间进行必要的设置和协调。这包括正确安装和配置交叉编译工具链、设置环境变量、导入所需的头文件和文件等。这些设置将确保编译器能够正确地在Windows上编译生成适用于QNX的目标代码。 总而言之,QNX和Windows的交叉编译需要使用特定的工具链和开发环境,如QNX Momentics IDE,以确保代码可以正确地在目标平台上编译和运行。通过正确配置和协调两个平台之间的设置,我们可以轻松地进行QNX和Windows之间的交叉编译。 ### 回答2: QNX是一个嵌入式实时操作系统,而Windows是一个通用桌面操作系统。交叉编译是将软件在一种操作系统上编译生成在另一种操作系统上执行的二进制文件的过程。 在QNX上进行Windows的交叉编译是可能的,这可以在开发嵌入式系统时非常有用。通过交叉编译,开发者可以在QNX上为Windows平台编写和测试代码,然后将其移植到Windows操作系统上运行。 在进行QNX和Windows的交叉编译时,首先需要安装适当的工具链和交叉编译器。这些工具可用于将QNX系统上的源代码编译为Windows平台上可执行的二进制文件。这些工具通常包括编译器、链接器、调试器和其他构建工具。 在配置交叉编译环境后,可以使用适当的命令和标志来执行交叉编译。开发者需要指定源代码的位置、目标平台的架构和操作系统等信息。一旦编译过程完成,就可以在Windows平台上运行生成的可执行文件。 需要注意的是,尽管交叉编译可以方便地在QNX上进行Windows开发,但在执行过程中可能会遇到一些平台差异和兼容性问题。因此,在进行交叉编译之前,开发者应该仔细检查和调试代码,确保其在目标平台上的兼容性。 总结而言,QNX和Windows交叉编译允许在嵌入式系统开发过程中在QNX上编写和测试代码,然后将其移植到Windows上运行。这样的开发环境可以提高开发效率并简化软件移植过程。 ### 回答3: QNX与Windows的交叉编译是指在Windows操作系统上使用QNX开发工具链来编译运行QNX操作系统或应用程序。 在进行QNX与Windows的交叉编译之前,我们需要安装QNX SDK和相关的交叉编译工具。然后,通过配置环境变量、设置路径等步骤,将QNX开发环境与Windows操作系统进行连接。 一旦环境搭建完成,我们就可以开始进行QNX项目的交叉编译了。首先,我们需要编写QNX的源代码,并将其保存在Windows操作系统上。接下来,我们可以使用QNX开发工具链中的编译器,如QCC (QNX C Compiler)来将源代码编译成二进制文件。可以使用命令行或者集成开发环境 (IDE) 来进行编译和构建。 在进行编译时,我们需要注意一些QNX特有的编译选项和参数,以及可能需要调整的和依赖项路径。这些都可以在编译文档或相关的QNX开发资源中找到。 一旦编译成功,就可以在Windows操作系统上生成QNX可执行文件。但是要注意,由于QNX是一个实时操作系统,所以在不同平台上可能存在一些不兼容的问题。因此,在将程序部署到实际的QNX平台之前,我们需要进行一些测试和调试,以确保程序在QNX上能够正常运行。 总而言之,QNX与Windows的交叉编译是通过在Windows操作系统上使用QNX开发工具链来编译运行QNX操作系统或应用程序。这需要进行环境搭建、编写源代码、使用QNX编译器进行编译、解决兼容性问题等一系列步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kaira88

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值