Неопределенные символы для архитектуры i386 в справочных вопросах

Я обнаружил ошибку в моем Mac x64, когда заметил, что код успешно запущен на компьютере с Windows x86 (загрузка кода библиотеки с Github). Но я думаю, что это не были проблемы с кодом C ++, потому что это, кажется, хорошо определено. Я провел поиск по большинству решений, но пока я не смог решить мои проблемы.

Ошибка :

 Undefined symbols for architecture i386:
"libedm::CRandSequence::Poll()", referenced from:
libedm::CDataset::SubSet(int, libedm::CDataset&) const in DataSet.o

DataSet.cpp

#include "RandSequence.h"using namespace libedm;

...
bool CDataset::SubSet(int DataNum, CDataset &TrainSet) const
{
//sub set of a data set
int FinalSize=DataNum;
if(DataNum>CaseInfo.Height)
FinalSize=CaseInfo.Height;

TrainSet.Matrix.clear();
CRandSequence RandSequence(FinalSize);
for(int i=0;i<FinalSize;i++)
{
int TrainNum=RandSequence.Poll();
TrainSet.Matrix.push_back(Matrix[TrainNum]);
}

TrainSet.CaseInfo=CaseInfo;
TrainSet.CaseInfo.Height=FinalSize;
TrainSet.CreatingTime=0;
return true;
}

RandSequence.cpp

int CRandSequence::Poll()
{
int Left=(int)OldIds.size();
if(Left==0)
return -1;

//select
int Selected=IntRand(Left);
int Ret=OldIds[Selected];
OldIds.erase(OldIds.begin()+Selected);

return Ret;
}

RandSequence.h

namespace libedm
{
class CRandSequence
{
public:
int Poll();
CRandSequence(int UMax);
void Reset();

private:
vector<int> OldIds;
int Max;
};
}

Я также попытался сделать мои настройки в my project->Build Setting как предложено некоторыми другими экспертами здесь.

1) Apple LLVM Language C++ > C++ Standard Library = libstdc++ (GNU C++ standard library)
2) Architectures > Architectures = 32-bit Intel (i386)- $(ARCHS_STANDARD_32_BIT)
3) Development > OS X Development Target = OS X 10.11 (tried to reduce)
4) Search Paths > Header Search Paths = (All i had header was linked..)

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]