Я пытаюсь скомпилировать код C ++ в XCode, и я получаю следующую ошибку:
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
Если ваша проблема в чем-то другом, то опубликовать код. Это немного удручает, когда приходится угадывать, в чем проблема у всех, потому что они не пытаются опубликовать код.
Других решений пока нет …