0

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

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

但它返回以下错误:

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.

我使用了 locate 命令并在环境树中找到了这些库。据我所知, 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
4

1 回答 1

1

您需要为与 RTEMS 关联的头文件包含添加目录包含标志,使用

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

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

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

于 2019-11-08T12:07:10.937 回答