我是RTEMS的初学者,并且已经在计算机中为erc32芯片(RTEMS Docs中的示例)构建了RTEMS5环境。
Linux的薄荷。该环境附带了示例应用程序。我正在尝试编译
使用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

最佳答案

您需要使用以下命令添加目录包含标志以用于与RTEMS相关联的头文件包含

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

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

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

    关于compiler-errors - SPARC-RTEMS5-GCC忽略或找不到库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55306034/

    10-10 08:59