C++ 参考问题架构i386的未定义符号
当我注意到代码在x86 windows机器上成功运行(从Github下载库代码)时,我在Mac x64中运行时出错。但我认为这不是C++代码的问题,因为它似乎很好定义。到目前为止,我已经找到了大多数解决方案,但没有找到解决问题的方法 错误:C++ 参考问题架构i386的未定义符号,c++,xcode7,C++,Xcode7,当我注意到代码在x86 windows机器上成功运行(从Github下载库代码)时,我在Mac x64中运行时出错。但我认为这不是C++代码的问题,因为它似乎很好定义。到目前为止,我已经找到了大多数解决方案,但没有找到解决问题的方法 错误: Undefined symbols for architecture i386: "libedm::CRandSequence::Poll()", referenced from: libedm::CDataset::Sub
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.h
namespace libedm
{
class CRandSequence
{
public:
int Poll();
CRandSequence(int UMax);
void Reset();
private:
vector<int> OldIds;
int Max;
};
}
您发布的代码不完整,即不是给出该错误消息的确切代码。我怎么知道?嗯,它抱怨
libedm
命名空间中的东西。我在代码中没有看到这样的名称空间。您的实际代码可能存在您发布的代码所没有的问题。请发布一个。是的,Dev,这是我的错误,我刚刚更新了代码。1)不是最小的。有许多成员变量、函数等与实际问题无关。2) 不完整。我无法复制、粘贴和编译以查看您看到的相同问题。(这将需要所有最小的代码,因为我们正在查看链接器错误,有关编译内容和链接顺序的信息。如Makefile…)因此,3)无法验证。作为一个bug跟踪器条目,这将被关闭为“无法复制”。感谢开发人员,对于所有不便之处,我深表歉意。谢谢你的评论,下次我会以更好的方式发布。由于整个代码与37K行代码相关,因此对于我来说很难找到更好的模拟方法。然而,我的问题现在已经完全解决了。谢谢,祝你今天愉快。
namespace libedm
{
class CRandSequence
{
public:
int Poll();
CRandSequence(int UMax);
void Reset();
private:
vector<int> OldIds;
int Max;
};
}
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..)