如何解决错误:常量数组的armcc链接错误中的L6769E?

如何解决错误:常量数组的armcc链接错误中的L6769E?,c,armcc,C,Armcc,我在c文件中定义了几个数组,并在其头部声明为extern。头文件包含在其他几个文件中。 它符合MSVC,但armcc抛出错误。 我如何解决这个问题 /* example.c file */ const tUint32 BanD_arr[4]={....,....,....,}; void BandBits(){ ...y = BanD_arr[x];... } /* example.h file */ extern const tUint32 BanD_arr[4]; example.h

我在c文件中定义了几个数组,并在其头部声明为extern。头文件包含在其他几个文件中。 它符合MSVC,但armcc抛出错误。 我如何解决这个问题

/* example.c file */
const tUint32 BanD_arr[4]={....,....,....,};

void BandBits(){ 
...y = BanD_arr[x];...
}

/* example.h file */
extern const tUint32 BanD_arr[4];

example.h是否包含typedefing tUint32?它看起来像是直接的代码,是一个相当深奥的错误。这是我以前没见过的,搜索相关信息非常稀少,这表明这是一个相当模糊的链接器问题。您可能想联系keil/arm寻求帮助。值得一提的是,这似乎与动态链接全局偏移表有关。您的意思是使用动态链接器吗?通常,您不应该使用手工制作的固定位宽度类型,而应该使用stdint.h类型:uint32\t。如果您的编译器没有提供此功能,请使用一个新的/其他编译器,因为这意味着它没有得到很好的维护,并且在其他方面也可能会损坏。@FiddlingBits yes example.h包括它 Error form ARMCC 4.5.2 Error: L6769E: Relocation #REL:0 in example.o(i.BandBits) with respect to BanD_arr. No GOTSLOTexists for symbol.