C ++ Xcode架构的未定义符号

时间:2018-01-13 11:49:04

标签: c++ xcode linker clang

当我尝试使用Xcode编译代码时出现错误。你可以在这里看到错误:

Undefined symbols for architecture x86_64:
  "Sun::Datum2JDatum(Sun::Time)", referenced from:
      _main in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

在我看来,他没有看到我的Sun-File。 在我看来,我包括了一切。但我没有发现问题。有人能告诉我我做错了吗?

这是我的main.cpp: 我包括了我需要的所有库以及我的Sun.hpp。

#include <iostream>
#include <time.h>
#include "Sun.hpp"

using namespace std;

int main(int argc, const char * argv[]) {

    struct tm* timeinfo;
    static char buf[200];
    time_t now = time(NULL);

    timeinfo = localtime(&now);

    Sun::Sun sunposition;
    Sun::Time time;

    // ...

    Sun::JDatum datum = sunposition.Datum2JDatum(time); // Here I got the Error

    return 0;
}

Sun.hpp:

class Sun{

public:
    typedef struct{
        double jd;
        double jd0;
        double T;
        double T0;
    } JDatum;

    Coordinates Locationdetermination(Sun::JDatum, Sun::Location);
    JDatum Datum2JDatum(Sun::Time);
};

Sun.cpp:

同样在Sun.cpp中包含了Sun.hpp。

#include "Sun.hpp"

using namespace std;

Sun::JDatum Datum2JDatum(Sun::Time Now){
    //...
}  

我实际上找不到错误。如果你能帮我解决问题,那就太好了。

1 个答案:

答案 0 :(得分:0)

在Sun.cpp中更改为:

JDatum Sun::Datum2JDatum(Sun::Time Now){
    //...
}