我正在尝试在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
如果您还有其他问题,请发布代码。不得不猜测每个人的问题是有点令人沮丧,因为他们不愿意去发布代码。