构建错误:多重定义
Posted
技术标签:
【中文标题】构建错误:多重定义【英文标题】:Build error: multiple definition of 【发布时间】:2012-10-08 20:46:31 【问题描述】:我有一个头文件,其中包含一个 unsigned char 数组,它实际上是一个 ttf 字体文件。 在 .c 文件中,我可以加载字体并使用它(我在 .c 文件中包含 ttf 头文件),但问题是当我尝试在另一个 c 文件中使用它时,我得到了这 2 个错误之一;
我可以得到的第一个错误是我的数组未声明。
所以我包含了包含我的数组的头文件,我得到了第二个错误;多重定义...
有人可以帮忙吗?我不明白。 我希望我的解释清楚,对我的近似英语感到抱歉:)
【问题讨论】:
【参考方案1】:使用extern
。
在你的头文件中,制作:
extern unsigned char my_array[];
在正好一个.c
文件中,定义了数组。
【讨论】:
extern unsigned char my_array[];
也许?
成功了 :D 非常感谢!我会在 5 分钟内标记你的答案!
@microbe - 是的。如果您在头文件中定义了该数组,您将获得该数组的尽可能多的定义,因为.c
文件包含该头文件。你只需要一个定义。因此,在头文件中使用 extern
将解决您的问题 - 所有包含它的 .c
文件都将看到该数组,并且它只会被定义一次。以上是关于构建错误:多重定义的主要内容,如果未能解决你的问题,请参考以下文章
来自 AuthorizationHandler (ASP.NET Core) 的自定义重定向