Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 参考问题架构i386的未定义符号_C++_Xcode7 - Fatal编程技术网

C++ 参考问题架构i386的未定义符号

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

当我注意到代码在x86 windows机器上成功运行(从Github下载库代码)时,我在Mac x64中运行时出错。但我认为这不是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.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..)