【问题标题】:Build error: multiple definition of构建错误:多重定义
【发布时间】:2012-10-08 20:46:31
【问题描述】:

我有一个头文件,其中包含一个 unsigned char 数组,它实际上是一个 ttf 字体文件。 在 .c 文件中,我可以加载字体并使用它(我在 .c 文件中包含 ttf 头文件),但问题是当我尝试在另一个 c 文件中使用它时,我得到了这 2 个错误之一;

我可以得到的第一个错误是我的数组未声明。

所以我包含了包含我的数组的头文件,我得到了第二个错误;多重定义...

有人可以帮忙吗?我不明白。 我希望我的解释清楚,对我的近似英语感到抱歉:)

【问题讨论】:

    标签: c build header-files multiple-definition-error


    【解决方案1】:

    使用extern

    在你的头文件中,制作:

    extern unsigned char my_array[];
    

    正好一个.c文件中,定义了数组。

    【讨论】:

    • extern unsigned char my_array[]; 也许?
    • 成功了 :D 非常感谢!我会在 5 分钟内标记你的答案!
    • @microbe - 是的。如果您在头文件中定义了该数组,您将获得该数组的尽可能多的定义,因为.c 文件包含该头文件。你只需要一个定义。因此,在头文件中使用 extern 将解决您的问题 - 所有包含它的 .c 文件都将看到该数组,并且它只会被定义一次。
    猜你喜欢
    • 2012-09-04
    • 2011-05-02
    • 2014-03-25
    • 1970-01-01
    • 2018-06-02
    • 1970-01-01
    • 2016-10-11
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多