警告LNK4006:" unsigned char * XXX" (?XXX @@ 3PAEA)已在WWWWW.o中定义;忽略第二个定义

时间:2014-09-24 04:50:42

标签: c++ visual-c++ linker

我在font.h文件中声明和定义字体数据,如下所示:

#ifndef _DEFAULT_FONT_H
#define _DEFAULT_FONT_H

const unsigned char wwDefaultFont_TextureData[] = 
{
    0x00,0x01,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x00,0x00,
};

#endif

我正计划在render.h文件中使用这个数组。 所以我把它包括为#include“font.h”

#include "font.h"

class render{

};

但我收到链接警告LNK4006错误?

声明此变量并避免此链接警告的最佳方法是什么?

1 个答案:

答案 0 :(得分:-1)

我认为您可能无法定义头文件宏以避免重复包含头文件。 如果这是真的,你有两种方法可以避免这种情况:

  1. 使用

    #ifndef _FONT_H_
    #define _FONT_H_
    //font.h content
    ...
    #endif
    

    确保仅包含一次

  2. 如果你只使用font.h中的const变体,你可以使用extern来声明它,你不需要包含头文件