将项目从 Debian 8 Xenomai 2.x 迁移到 Debain 9 Xenomai 3.x

Migrate project from Debian 8 Xenomai 2.x to Debain 9 Xenomai 3.x

本文关键字:Xenomai 迁移 Debain 项目 Debian      更新时间:2023-10-16

由于新的PC硬件,我不得不使用debain 9和Xenomai 3。Xenomai 在系统上运行,我运行测试套件脚本。我在 xenomai.org 上找到了一个迁移文档,并更改了源代码中的包含路径等。 但是现在当我想编译代码时,我收到了此错误

In file included from ./CSRTPosixQue.h:20:0,
from ./CSRTTask.h:20,
from main.cpp:26:
/usr/xenomai/include/trank/native/task.h: In function ‘int rt_task_notify(RT_TASK*, rt_sigset_t)’:
/usr/xenomai/include/trank/native/task.h:41:64: error: ‘trank_warning’ was not declared in this scope
trank_warning("in-kernel native API is gone, rebase over RTDM");

但是这个"trank_warning"是在trank.h中定义的,其中包括(见下文(

有人知道为什么吗?

这里是标题:

任务.h

/*
* Copyright (C) 2014 Philippe Gerum <rpm@xenomai.org>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.
*/
#ifndef _XENOMAI_TRANK_NATIVE_TASK_H
#define _XENOMAI_TRANK_NATIVE_TASK_H
#include <errno.h>
#include <alchemy/task.h>
#include <trank/trank.h>
#include <trank/native/types.h>
#define T_FPU    0
#define T_NOSIG  0
#define T_SUSP   __THREAD_M_SPARE7
/* bit #24 onward are otherwise unused. */
#define T_CPU(cpu) (1 << (24 + (cpu & 7)))
#define T_CPUMASK  0xff000000
#ifdef __cplusplus
extern "C" {
#endif
__deprecated
static inline int rt_task_notify(RT_TASK *task, rt_sigset_t sigs)
{
trank_warning("in-kernel native API is gone, rebase over RTDM");
return -ENOSYS;
}
COMPAT_DECL(int, rt_task_create(RT_TASK *task, const char *name,
int stksize, int prio, int mode));
COMPAT_DECL(int, rt_task_spawn(RT_TASK *task, const char *name,
int stksize, int prio, int mode,
void (*entry)(void *arg), void *arg));
COMPAT_DECL(int, rt_task_set_periodic(RT_TASK *task,
RTIME idate, RTIME period));
#ifdef __cplusplus
}
#endif
#endif /* _XENOMAI_TRANK_NATIVE_TASK_H */

特兰克·

/*
* Copyright (C) 2014 Philippe Gerum <rpm@xenomai.org>.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA.
*/
#ifndef _XENOMAI_TRANK_TRANK_H
#define _XENOMAI_TRANK_TRANK_H
#include <boilerplate/compiler.h>
#ifdef __XENO_COMPAT__
#ifdef __cplusplus
extern "C" {
#endif
void warning(const char *fmt, ...);
#ifdef __cplusplus
}
#endif
#define trank_warning(__fmt, __args...) 
warning("%s: " __fmt, __func__, ##__args)
#define __CURRENT(call)     __current_ ## call
#define COMPAT_DECL(T, P)   __typeof__(T) P
#define CURRENT_DECL(T, P)  __typeof__(T) __CURRENT(P)
#else /* !__XENO_COMPAT__ */
#define __CURRENT(call)     call
#define COMPAT_DECL(T, P)
#define CURRENT_DECL(T, P)  __typeof__(T) P;    
__typeof__(T) __current_ ## P
#define CURRENT_IMPL(T, I, A)       
__typeof__(T) I A __attribute__((alias("__current_" __stringify(I)), weak)); 
__typeof__(T) __current_ ## I A
#endif /* !__XENO_COMPAT__ */
#endif /* _XENOMAI_TRANK_TRANK_H */

我必须使用过渡工具包,所以我添加了"gcc $(xeno-config --skin=native --cflags(",对于 -ldflags 也是如此