Перенос проекта с Debian 8 Xenomai 2.x на Debain 9 Xenomai 3.x - PullRequest
0 голосов
/ 06 февраля 2020

Из-за нового оборудования P C я должен использовать debain 9 и Xenomai 3. Xenomai работает в системе, я запускаю сценарии testsuite. Я нашел документ миграции на xenomai.org и изменил includepath и так далее в своем исходном коде. Но теперь, когда я хочу скомпилировать код, я получил эту ошибку

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 (см. Ниже)

Кто-нибудь знает почему ?

Здесь заголовки:

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_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 */

trank.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 */

1 Ответ

0 голосов
/ 16 марта 2020

Мне нужно использовать Transition Kit, поэтому я добавил «g cc $ (xeno-config --skin = native --cflags)» и то же самое для -ldflags

...