【问题标题】:Unknown type name 'EXTERN' error Minix未知类型名称“外部”错误 Minix
【发布时间】:2018-04-04 10:01:39
【问题描述】:

正在处理一个类项目,我收到一个未知类型名称“EXTERN”错误。我正在创建系统调用(稍后将通过库调用访问)。出于某种原因,当我尝试在 usr/src/releasetools 中运行“make services”时,我无法弄清楚为什么我的 mproc.h 文件不合作。这是我得到的错误:

In file included from do_getaccesslvl.c:2:
./mproc.h:16:1: error: unknown type name 'EXTERN'
EXTERN struct mproc {
^
./mproc.h:16:8: error: expected identifier or '('
EXTERN struct mproc {
       ^
do_getaccesslvl.c:12:16: error: incomplete definition of type 'struct mproc'
    return process->level;
           ~~~~~~~^

./proto.h:3:8: 注意:'struct mproc' 结构的前向声明

mproc;

产生了 3 个错误。 *** 错误代码 1

为什么EXTERN 的类型名称未知?这个"struct" 是由 Minix 本地定义的。我想也许我损坏了一些东西,所以我返回并恢复到 Oracle Virtualbox 中的先前快照,但错误仍然存​​在。任何帮助将不胜感激。

【问题讨论】:

  • 您能提供更多信息吗? EXTERN 是宏还是您的意思是 externstruct mproc 是类型定义吗?如果是这样,请向我们展示完整的类型定义。您是否有要声明的特定 struct mproc 变量,并希望在外部引用,如果有,您在哪里声明它?

标签: c minix


【解决方案1】:

好吧,我想通了。抱歉,我没有添加足够的信息。错误最终出现在我的系统调用文件中,并且是由于我包含文件的顺序。更改包含文件的顺序后,一切正常!感谢您尝试提供帮助!

【讨论】:

  • 你可以删除这个问题,因为你自己找到了答案,而且不是很有趣。