错误:dm_mmc_ops未声明(此函数首次使用)

错误:dm_mmc_ops未声明(此函数首次使用),c,u-boot,C,U Boot,我正在使用Buildroot为我的嵌入式系统(cyclone V)构建一个u-boot引导加载程序,出现以下错误: 错误:“dm_mmc_ops”未声明(此函数首次使用) 在多次尝试理解/解决错误失败后,我成功地隔离了问题,该问题看起来像下面的简单代码,并生成了相同的错误: 文件1.h 文件2.h 文件2.c #包括 #包括“file1.h” #包括“file2.h” 整数返回\整数(整数数据) { 返回数据; } int return_ptr(字符*数据) { 返回(int)数据; } 常量结

我正在使用Buildroot为我的嵌入式系统(cyclone V)构建一个u-boot引导加载程序,出现以下错误:

错误:“dm_mmc_ops”未声明(此函数首次使用)

在多次尝试理解/解决错误失败后,我成功地隔离了问题,该问题看起来像下面的简单代码,并生成了相同的错误:

文件1.h 文件2.h 文件2.c
#包括
#包括“file1.h”
#包括“file2.h”
整数返回\整数(整数数据)
{
返回数据;
}
int return_ptr(字符*数据)
{
返回(int)数据;
}
常量结构dm_mmc_ops dm_dwmci_ops={
.send_cmd=return_int,
.set\u ios=返回\u ptr
};
真空总管(真空)
{
结构开发my_dev={.ops=&dm_dwmci_ops};
dev=&my_dev;
字符文本[]=“abcd”;
struct dm_mmc_ops*test_mmc=mmc_get_ops(dev);//这里有错误!!!
printf(“%d\n”,test\u mmc->send\u cmd(50));
printf(“%d\n”,文本);
printf(“%d\n”,test\u mmc->set\u ios(text));
返回;
}
那么生成的错误是:

错误:“dm_mmc_ops”未声明(此函数首次使用)

我的代码中有什么错误?我应该怎么做才能消除这个错误?

您的问题就在这里

#define mmc_get_ops(dev)        ((dm_mmc_ops *)(dev)->ops)
                                  ^^^^^^^^^^
你可能想要

#define mmc_get_ops(dev)        ((struct dm_mmc_ops *)(dev)->ops)
除此之外,你还有许多其他问题。将编译器设置为高警告级别(例如gcc-Wall…),然后修复所有警告。

您的问题就在这里

#define mmc_get_ops(dev)        ((dm_mmc_ops *)(dev)->ops)
                                  ^^^^^^^^^^
你可能想要

#define mmc_get_ops(dev)        ((struct dm_mmc_ops *)(dev)->ops)
除此之外,你还有许多其他问题。将编译器设置为高警告级别(例如gcc-Wall…),然后修复所有警告

#define mmc_get_ops(dev)        ((struct dm_mmc_ops *)(dev)->ops)