当我尝试使用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){
//...
}
我实际上找不到错误。如果你能帮我解决问题,那就太好了。
答案 0 :(得分:0)
在Sun.cpp中更改为:
JDatum Sun::Datum2JDatum(Sun::Time Now){
//...
}