QNX 7.1 交叉编译 cron

QNX 7.1 交叉编译 cron

概述

cron 是 Linux 系统上一个非常有用的工具,它可以让你在特定的时间或间隔自动运行指定的任务,你可以使用它来自动执行日志转储、备份、发送邮件通知等。

cron 最初是运行在 BSD 4.23 SysV 系统上,目前在 Linux 系统运行的是开源的 cron 实现,其作者为 Pau Vixie,最后的版本是 1993 年发布的 Vixie Cron V3.0,所以 cron 源码已经有非常长的时间未作任何变动了。

不过每个发行版本(比如说 Debian 或者 Redhat)会继续维护 cron 的源码,可以通过下文所介绍的方法获取 cron 源码。

获取源码

使用 apt-get 获取(推荐)

使用 apt-get source 命令下载 cron 源码:

mkdir cron
cd cron
apt-get source cron

技巧:
将 Ubuntu 的软件源配置成阿里云可大大节省软件包下载时间
参考:Ubuntu 修改 apt 源为阿里云源

上述命令执行后会将 cron 的原始代码包及 debian 的补丁包一起下载下来,合并到 cron-3.0pl1 文件夹,最终可以在合并后的文件夹中进行编译:

uidq2691@hzhebserver01:~/projects/linux/cron$ ls
cron-3.0pl1                           cron_3.0pl1-136ubuntu1.dsc
cron_3.0pl1-136ubuntu1.debian.tar.xz  cron_3.0pl1.orig.tar.gz

使用 git 获取

上文提到,每个发行版本会继续维护 cron 的源码,在 Debin 系统中使用的是 Git 版本控制系统来进行维护。可以使用下面命令拉取最新源码:

git clone https://salsa.debian.org/debian/cron.git

修改 Makefile 文件

  1. 修改 58 行,添加 -lregex 链接正则表达式 libregex.so 库

    LIBS		= $(PAM_LIBS) $(SELINUX_LIBS) $(AUDIT_LIBS) -lregex
    
  2. 修改 68 行,添加编译所需的宏定义。

    COMPAT		=	-DPOSIX -D_QNX_SOURCE -D_QNX_ -D__GLIBC__ -DMAXNAMLEN=255
    
  3. 修改 83 行,添加 LDFLAGS 配置:

    LDFLAGS		= -Vgcc/8.3.0,gcc_ntoaarch64le
    
  4. 修改 87 行,添加 CFLAGS 配置:

    CFLAGS		+=	$(INCLUDE) $(COMPAT) $(DEFS) -Vgcc/8.3.0,gcc_ntoaarch64le
    

配置 QNX 编译环境

  1. 假如 QNX 7.1 SDP 的路径为 /work/sdk/qnx710,使用 source 命令让 qnx 环境变量生效:

    source /work/sdk/qnx710/qnxsdp-env.sh
    
  2. qcc 添加到 $PATH 环境变量:

    export PATH=$PATH:$QNX_HOST/usr/bin
    
  3. 配置 CC 环境变量的值,默认为 gcc,需要修改成 qcc:

    export CC=qcc
    
  4. 执行 make 命令进行编译:

    make
    
  5. 最后会在当前目录中生成 croncrontab 两个进程。

欢迎关注我的公众号:飞翔的小黄鸭
也许会发现不一样的风景

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值