链接目标文件提示对象重定义解决方法

在头文件chooserank.h里面生命并定义了一个宽字符数组

const wchar_t * aryLevels[] { L"士兵", L"下士", L"中士"};

在chooserank.cpp 里面和LCreateTable.cpp里面都有使用这个数组编译的时候没有报错但是链接目标文件的时候提示重定义。

解决办法

在chooserank.h里面直接声明

extern const wchar_t * aryLevels[] ;

然后在chooserank.cpp里面定义

const wchar_t * aryLevels[] { L"士兵", L"下士", L"中士"};

付上一点extern 的百度解释,可置于变量或者函数前,以表示变量或者函数的定义在别的文件中,提示编译器遇到此变量或函数时,在其它模块中寻找其定义。

原文地址:https://www.cnblogs.com/abelmou/p/4971516.html