0

我正在尝试在 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;

我没有得到这个错误的原因。

4

1 回答 1

2

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

extern std::string selectedFields; // definition

并在一个源文件中声明

std::string selectedFields; // declaration

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

于 2012-11-06T10:26:03.880 回答