未定义的建筑符号,尝试了i386和其他符号

Undefined symbols for architecture, tried i386 and other ,,,

本文关键字:符号 i386 其他 建筑 未定义      更新时间:2023-10-16

只是想启动一些C 并创建以下简单类:

椭圆形。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的未定义符号: "椭圆形:: getaxisa()",从: _ eLipsoid.o中的曼LD:符号(s)架构x86_64找不到符号而且我真的不知道怎么了。试图将体系结构设置为32位,但这不起作用

缺少Ellipsoid::getAxisA()函数的定义。您必须定义某个地方。现在,您只有声明,而不是定义。定义看起来像这样:

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

将生活在eLlipsoid.cpp。