我是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/