未定义的架构符号,尝试过i386和其他,,,

时间:2012-10-29 19:39:49

标签: c++ xcode macos

只是想开始一些C ++并创建这些简单的类:

Ellipsoid.h

#ifndef __Ellipsoid__Ellipsoid__
#define __Ellipsoid__Ellipsoid__

#include <iostream>
#include <cassert>


class Ellipsoid {
private:
    double axisA;
    double flatteningF;

public:
    Ellipsoid() {};
   Ellipsoid(double aIn, double fIn);
    double getAxisA();
    double getFlatteningF();



};

#endif /* defined(__Ellipsoid__Ellipsoid__) */

Ellipsoid.cpp

#include "Ellipsoid.h"


Ellipsoid::Ellipsoid (double aIn, double fIn) : axisA(aIn), flatteningF(fIn) {};

int main() {
    std::cout << "bla";
    Ellipsoid el = Ellipsoid(44.3, 32);
    double test = el.getAxisA();


    return 0;
}

因为你在这里看不到任何特别的东西。我在osx10.8上使用xcode。 但是当我运行程序时,我遇到了这个错误: 架构x86_64的未定义符号:   &#34; Ellipsoid :: getAxisA()&#34;,引自:       _main in Ellipsoid.o ld:找不到架构x86_64的符号 我真的无法弄清楚什么是错的。试图将架构设置为32位,但这不会起作用

1 个答案:

答案 0 :(得分:0)

缺少Ellipsoid::getAxisA()函数的定义。你必须在某处定义。现在你只有一个声明,而不是一个定义。定义可能如下所示:

double Ellipsoid::getAxisA() { return axisA; }

并且会住在Ellipsoid.cpp。