SPARC-RTEMS5-GCC 忽略或找不到库

SPARC-RTEMS5-GCC ignores or don't find libraries

我是 RTEMS 的初学者,我已经在我的计算机上为 erc32 芯片(RTEMS Docs 中的示例)构建了一个 RTEMS5 环境 linux 薄荷。该环境附带示例应用程序。我正在尝试编译 来自 "hello" (init.c) 使用 sparc-rtems5-gcc 的示例,这里是命令行:

sparc-rtems5-gcc -g -O2 /home/michel/masters_project/src/rtems/testsuites/samples/hello/init.c -o /home/michel/masters_project/compile_test/hello2.exe

但是 returns 出现以下错误:

fatal error: rtems.h: No such file or directory
 #include <rtems.h>
          ^~~~~~~~~
compilation terminated.

所以我尝试在init.c代码中注释rtems.h,留下代码的下一个库, tmacros.h,于是再次尝试编译,出现如下错误:

fatal error: tmacros.h: No such file or directory
 #include <tmacros.h>
          ^~~~~~~~~~~
compilation terminated.

我使用定位命令在环境树中找到了这些库。 据我所知,sparc-rtems5-gcc 没有找到或忽略这些库。 我将 bin 文件夹添加到 PATH 变量中。 命令行:

export PATH=$HOME/masters_project/rtems/5/bin:"$PATH"

我也创建了变量 RTEMS_MAKEFILE_PATH 基于旧版本说明。我发现 RTEMS_MAKEFILE_PATH 变量应该指向 BSP 文件所在的位置。但 我不确定在当前版本的 RTEMS 中是否仍然需要创建这个环境变量,因为我在主要文档中没有找到任何相关说明。

命令行:

export RTEMS_MAKEFILE_PATH=/home/michel/masters_project/build/b-erc32

有人可以帮忙吗?另外,如果您有工作环境,可以复制您的项目吗 树给我?

我的 uname -a 命令输出:

Linux michel-COM 4.15.0-45-generic #48~16.04.1-Ubuntu SMP Tue Jan 29 18:03:48 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

您需要使用

为与 RTEMS 关联的头文件包含添加目录包含标志
  • -I {path-to-RTEMS},示例:flag_rtems = -I /opt/rtems/5/,现在在编译阶段使用$(flag_rtems)
  • 导出 $(PATH) 将有助于在 运行 环境中使用二进制文件,而不是搜索包含的头文件。

建议在 /opt/ 目录中安装 RTEMS。

(注意:目录包含标志用于目标文件编译阶段,而不是链接阶段。)