我正在尝试在xcode中编译C ++代码,并且出现以下错误:

ld: duplicate symbol _selectedFields in Library/Developer/Xcode/DerivedData/ReadHeaderTBL-arftrodtnbtmucbjkejinzonhulu/Build/Intermediates/ReadHeaderTBL.build/Debug-iphonesimulator/ReadHeaderTBL.build/Objects-normal/i386/readingTBLCPP.o and /Library/Developer/Xcode/DerivedData/ReadHeaderTBL-arftrodtnbtmucbjkejinzonhulu/Build/Intermediates/ReadHeaderTBL.build/Debug-iphonesimulator/ReadHeaderTBL.build/Objects-normal/i386/ReadFile.o for architecture i386


符号“ selectedFields”在一个类中声明,并从另一类中调用。

声明为:

       std::string selectedFields;


我没有得到此错误的原因。

最佳答案

通常,当我们遇到此问题时,这是因为人们已经在头文件中声明了该变量。您应该在头文件中定义它

extern std::string selectedFields; // definition


并在一个源文件中声明

std::string selectedFields; // declaration


如果您还有其他问题,请发布代码。不得不猜测每个人的问题是有点令人沮丧,因为他们不愿意去发布代码。

10-04 19:48